Repository: python-lsp/python-lsp-server

Issue:
notebookDocumentSync notebookSelector type error
https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#notebookDocumentSyncOptions

The notebookSelector should be an array type. But now the object is returned.
![image](https://github.com/python-lsp/python-lsp-server/assets/35445052/77c8f038-45ed-4c0c-a9c5-59940a399e8d)


Discussion:

Patch:
diff --git a/pylsp/python_lsp.py b/pylsp/python_lsp.py
index 3eeb2f7..e2b541d 100644
--- a/pylsp/python_lsp.py
+++ b/pylsp/python_lsp.py
@@ -295,7 +295,7 @@ class PythonLSPServer(MethodDispatcher):
                 "openClose": True,
             },
             "notebookDocumentSync": {
-                "notebookSelector": {"cells": [{"language": "python"}]}
+                "notebookSelector": [{"cells": [{"language": "python"}]}]
             },
             "workspace": {
                 "workspaceFolders": {"supported": True, "changeNotifications": True}


Test patch:
diff --git a/test/test_notebook_document.py b/test/test_notebook_document.py
index e8e7ac7..6050b58 100644
--- a/test/test_notebook_document.py
+++ b/test/test_notebook_document.py
@@ -33,7 +33,8 @@ def test_initialize(client_server_pair):
         },
     ).result(timeout=CALL_TIMEOUT_IN_SECONDS)
     assert server.workspace is not None
-    assert "notebookDocumentSync" in response["capabilities"].keys()
+    selector = response["capabilities"]["notebookDocumentSync"]["notebookSelector"]
+    assert isinstance(selector, list)
 
 
 @pytest.mark.skipif(IS_WIN, reason="Flaky on Windows")