From 75f781da768bd24e091ac5ce9f2fbc8e407e21b2 Mon Sep 17 00:00:00 2001
From: Alex Carney <alcarneyme@gmail.com>
Date: Thu, 22 Aug 2024 20:14:43 +0100
Subject: [PATCH] refactor: rename `Server` to `JsonRPCServer`

---
 docs/source/howto/migrate-to-v2.rst | 15 +++++++++++++++
 pygls/lsp/_base_server.py           |  4 ++--
 pygls/protocol/json_rpc.py          |  4 ++--
 pygls/server.py                     |  2 +-
 4 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/docs/source/howto/migrate-to-v2.rst b/docs/source/howto/migrate-to-v2.rst
index 32e8acdb..3fde3e02 100644
--- a/docs/source/howto/migrate-to-v2.rst
+++ b/docs/source/howto/migrate-to-v2.rst
@@ -349,3 +349,18 @@ As part of the update to ``lsprotocol v2024``, the following types have been ren
 ``WorkspaceWorkspaceFoldersRequest``                                                 ``WorkspaceFoldersRequest``
 ``WorkspaceWorkspaceFoldersResponse``                                                ``WorkspaceFoldersResponse``
 ===================================================================================  ==============
+
+Low Level Changes
+-----------------
+
+The following changes are unlikely to affect you directly, but have been included for completeness.
+
+``LanguageServer.lsp`` is now ``LanguageServer.protocol``
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+If you need to access the underlying protocol object this is now via the ``protocol`` attribute.
+
+``pygls.server.Server`` is now ``pygls.server.JsonRPCServer``
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+pygls' base server class has been renamed
diff --git a/pygls/lsp/_base_server.py b/pygls/lsp/_base_server.py
index fc8f4f24..af47abd6 100644
--- a/pygls/lsp/_base_server.py
+++ b/pygls/lsp/_base_server.py
@@ -5,7 +5,7 @@
 from lsprotocol import types
 from pygls.protocol import LanguageServerProtocol
 from pygls.protocol import default_converter
-from pygls.server import Server
+from pygls.server import JsonRPCServer
 import typing
 from typing import Any
 from typing import Callable
@@ -14,7 +14,7 @@
 from typing import Type
 
 
-class BaseLanguageServer(Server):
+class BaseLanguageServer(JsonRPCServer):
 
     protocol: LanguageServerProtocol
 
diff --git a/pygls/protocol/json_rpc.py b/pygls/protocol/json_rpc.py
index fd80595b..988aa476 100644
--- a/pygls/protocol/json_rpc.py
+++ b/pygls/protocol/json_rpc.py
@@ -59,7 +59,7 @@
 
 if TYPE_CHECKING:
     from cattrs import Converter
-    from pygls.server import Server, WebSocketTransportAdapter
+    from pygls.server import JsonRPCServer, WebSocketTransportAdapter
 
 
 logger = logging.getLogger(__name__)
@@ -121,7 +121,7 @@ class JsonRPCProtocol(asyncio.Protocol):
 
     VERSION = "2.0"
 
-    def __init__(self, server: Server, converter: Converter):
+    def __init__(self, server: JsonRPCServer, converter: Converter):
         self._server = server
         self._converter = converter
 
diff --git a/pygls/server.py b/pygls/server.py
index 29aee81f..d82b8874 100644
--- a/pygls/server.py
+++ b/pygls/server.py
@@ -147,7 +147,7 @@ def write(self, data: Any) -> None:
         asyncio.ensure_future(self._ws.send(data))
 
 
-class Server:
+class JsonRPCServer:
     """Base server class
 
     Parameters