question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Static capabilities

See original GitHub issue

I don’t quite understand why this language server needs to register all of its capabilities dynamically:

:: --> jedi-language-server initialize(1): {'rootPath': '/home/raoul/.config/sublime-text-3/Packages/LSP', 'capabilities': {'experimental': {}, 'workspace': {'executeCommand': {}, 'didChangeConfiguration': {}, 'configuration': True, 'symbol': {'dynamicRegistration': True, 'symbolKind': {'valueSet': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}}, 'applyEdit': True, 'workspaceFolders': True}, 'textDocument': {'typeDefinition': {'dynamicRegistration': True, 'linkSupport': True}, 'codeAction': {'dynamicRegistration': True, 'codeActionLiteralSupport': {'codeActionKind': {'valueSet': []}}}, 'implementation': {'dynamicRegistration': True, 'linkSupport': True}, 'rename': {'dynamicRegistration': True}, 'definition': {'dynamicRegistration': True, 'linkSupport': True}, 'completion': {'dynamicRegistration': True, 'completionItem': {'snippetSupport': True}, 'completionItemKind': {'valueSet': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]}}, 'hover': {'dynamicRegistration': True, 'contentFormat': ['markdown', 'plaintext']}, 'signatureHelp': {'dynamicRegistration': True, 'signatureInformation': {'parameterInformation': {'labelOffsetSupport': True}, 'documentationFormat': ['markdown', 'plaintext']}}, 'colorProvider': {'dynamicRegistration': True}, 'publishDiagnostics': {'relatedInformation': True}, 'formatting': {'dynamicRegistration': True}, 'rangeFormatting': {'dynamicRegistration': True}, 'references': {'dynamicRegistration': True}, 'declaration': {'dynamicRegistration': True, 'linkSupport': True}, 'documentSymbol': {'dynamicRegistration': True, 'symbolKind': {'valueSet': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}}, 'documentHighlight': {'dynamicRegistration': True}, 'synchronization': {'willSaveWaitUntil': True, 'dynamicRegistration': True, 'willSave': True, 'didSave': True}}}, 'initializationOptions': {}, 'processId': 7057, 'workspaceFolders': [{'name': 'LSP', 'uri': 'file:///home/raoul/.config/sublime-text-3/Packages/LSP'}, {'name': 'LSP-eslint', 'uri': 'file:///home/raoul/.config/sublime-text-3/Packages/LSP-eslint'}, {'name': 'metals-sublime', 'uri': 'file:///home/raoul/.config/sublime-text-3/Packages/metals-sublime'}, {'name': 'lsp_utils', 'uri': 'file:///home/raoul/.config/sublime-text-3/Packages/lsp_utils'}, {'name': 'LSP-json', 'uri': 'file:///home/raoul/.config/sublime-text-3/Packages/LSP-json'}, {'name': 'UnitTesting', 'uri': 'file:///home/raoul/.config/sublime-text-3/Packages/UnitTesting'}, {'name': 'LSP-vue', 'uri': 'file:///home/raoul/.config/sublime-text-3/Packages/LSP-vue'}, {'name': 'LSP-css', 'uri': 'file:///home/raoul/.config/sublime-text-3/Packages/LSP-css'}, {'name': 'LSP-html', 'uri': 'file:///home/raoul/.config/sublime-text-3/Packages/LSP-html'}, {'name': 'LSP-intelephense', 'uri': 'file:///home/raoul/.config/sublime-text-3/Packages/LSP-intelephense'}, {'name': 'LSP-typescript', 'uri': 'file:///home/raoul/.config/sublime-text-3/Packages/LSP-typescript'}, {'name': 'LSP-elm', 'uri': 'file:///home/raoul/.config/sublime-text-3/Packages/LSP-elm'}, {'name': 'User', 'uri': 'file:///home/raoul/.config/sublime-text-3/Packages/User'}, {'name': 'tonic', 'uri': 'file:///home/raoul/Documents/Programming/tonic'}], 'rootUri': 'file:///home/raoul/.config/sublime-text-3/Packages/LSP', 'clientInfo': {'name': 'Sublime Text LSP'}}
:: <<< jedi-language-server 1: {'capabilities': {'referencesProvider': False, 'hoverProvider': False, 'renameProvider': False, 'definitionProvider': False, 'executeCommandProvider': {'commands': []}, 'documentSymbolProvider': False, 'documentHighlightProvider': False, 'documentRangeFormattingProvider': False, 'workspaceSymbolProvider': False, 'workspace': {'workspaceFolders': {'changeNotifications': True, 'supported': True}}, 'documentFormattingProvider': False, 'textDocumentSync': 2, 'codeActionProvider': False}}
::  -> jedi-language-server initialized: {}
::  -> jedi-language-server textDocument/didOpen
:: <-- jedi-language-server workspace/configuration(03b5234d-8f0c-4316-9965-9f3911e0cef5): {'items': [{'section': 'jedi', 'scopeUri': None}]}
:: >>> jedi-language-server 03b5234d-8f0c-4316-9965-9f3911e0cef5: [None]
:: <-- jedi-language-server client/registerCapability(8f4015fb-a9b9-4c52-8d6a-cb46c4220d3d): {'registrations': [{'id': 'de8a2314-4162-4c6d-8d6a-f620854f465f', 'method': 'textDocument/completion', 'registerOptions': {'triggerCharacters': ['.', "'", '"']}}]}
:: >>> jedi-language-server 8f4015fb-a9b9-4c52-8d6a-cb46c4220d3d: None
:: <-- jedi-language-server client/registerCapability(88ac0d23-4fa3-4a94-98cb-e75688ffb04a): {'registrations': [{'id': '8b2739bf-9fc0-4809-a48d-0bd551987b87', 'method': 'textDocument/definition', 'registerOptions': {}}]}
:: >>> jedi-language-server 88ac0d23-4fa3-4a94-98cb-e75688ffb04a: None
:: <-- jedi-language-server client/registerCapability(3a30f99e-f728-47db-956a-bd9beb364c6b): {'registrations': [{'id': '780e31e2-9b02-4585-b3c2-a21e027cf2a8', 'method': 'textDocument/documentHighlight', 'registerOptions': {}}]}
:: >>> jedi-language-server 3a30f99e-f728-47db-956a-bd9beb364c6b: None
:: <-- jedi-language-server client/registerCapability(1f5b653f-6ca0-45a4-ae42-00071d96d874): {'registrations': [{'id': '2133486f-74c0-4022-b783-98f4febb33a5', 'method': 'textDocument/documentSymbol', 'registerOptions': {}}]}
:: >>> jedi-language-server 1f5b653f-6ca0-45a4-ae42-00071d96d874: None
:: <-- jedi-language-server client/registerCapability(d67ef90d-a7e5-4728-b088-57695a3140cb): {'registrations': [{'id': '595a229e-94b1-4fea-8d47-6e41dd026ff5', 'method': 'textDocument/hover', 'registerOptions': {}}]}
:: >>> jedi-language-server d67ef90d-a7e5-4728-b088-57695a3140cb: None
:: <-- jedi-language-server client/registerCapability(7c7d37b8-cace-47dc-8ea9-a5adb97928d7): {'registrations': [{'id': '90ba73d4-b6b1-41ca-a93f-61ee324cb138', 'method': 'textDocument/references', 'registerOptions': {}}]}
:: >>> jedi-language-server 7c7d37b8-cace-47dc-8ea9-a5adb97928d7: None
:: <-- jedi-language-server client/registerCapability(04bab9f0-ef3a-4169-9266-b86d066e7095): {'registrations': [{'id': '8c0863db-96c7-4c9e-8c69-9cef51acb92b', 'method': 'textDocument/rename', 'registerOptions': {}}]}
:: >>> jedi-language-server 04bab9f0-ef3a-4169-9266-b86d066e7095: None
:: <-- jedi-language-server client/registerCapability(cfe3dfd6-c3a1-407d-a5ac-bfc403097b7f): {'registrations': [{'id': '1e058f76-d10c-432a-8c45-f64e639c5fbb', 'method': 'textDocument/signatureHelp', 'registerOptions': {'triggerCharacters': ['(', ',', ')']}}]}
:: >>> jedi-language-server cfe3dfd6-c3a1-407d-a5ac-bfc403097b7f: None
:: <-- jedi-language-server client/registerCapability(66429cb1-ed0f-4efd-8a44-740d2481338e): {'registrations': [{'id': '91701d2c-5e7c-4334-965e-84d88254de85', 'method': 'workspace/symbol', 'registerOptions': {}}]}
:: >>> jedi-language-server 66429cb1-ed0f-4efd-8a44-740d2481338e: None
:: <-- jedi-language-server client/registerCapability(82c9352c-06f4-4a39-9169-5a4c7a0d1f7a): {'registrations': [{'id': '58635467-db25-41c9-b78d-8c31d68c856e', 'method': 'textDocument/didOpen', 'registerOptions': {}}]}
:: >>> jedi-language-server 82c9352c-06f4-4a39-9169-5a4c7a0d1f7a: None
:: <-- jedi-language-server client/registerCapability(5f60e62b-e254-4e14-9bc1-84ca459b4095): {'registrations': [{'id': '086b4cc1-8511-43db-bf9a-c3e66410db49', 'method': 'textDocument/didChange', 'registerOptions': {}}]}
:: >>> jedi-language-server 5f60e62b-e254-4e14-9bc1-84ca459b4095: None
:: <-- jedi-language-server client/registerCapability(35874c00-9974-4aa3-a032-76f08914f4ca): {'registrations': [{'id': '1e6b6b84-4f18-4521-8625-f663e1a32187', 'method': 'textDocument/didSave', 'registerOptions': {}}]}
:: >>> jedi-language-server 35874c00-9974-4aa3-a032-76f08914f4ca: None
:: <-  jedi-language-server window/showMessage: {'type': 3, 'message': 'jedi-language-server initialized'}

Wouldn’t it be easier to put all this stuff in the initialize response?

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Comments:18 (7 by maintainers)

github_iconTop GitHub Comments

2reactions
rwolscommented, May 4, 2020
"triggerCharacters": [
        "(",
        ",",
        ")"
      ]

The ) should not be a trigger char for signatureHelp. Means that if the user is done typing the args of a function and types the ) character, the editor requests textDocument/signatureHelp, and then you won’t be in a function signature context.

1reaction
harismandalcommented, May 3, 2020

Yes, it’s working great for me now. Thanks for fixing this! I’ll try to create a PR in lsp-mode for emacs mentioning the server and adding the configurations.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Designing with Static Capabilities and Effects - YouTube
csgordon explores the trade-offs in the kinds of programs well-handled by static capability systems in comparison to static effect systems, ...
Read more >
Static vs Dynamic capability | Waterstons
Static being any intelligence or information built over time inherent to the organisation, be it process, documents or anything you would consider intellectual ......
Read more >
Dynamic or Static Capabilities? Process Management ...
Whether and how organizations adapt to changes in their environments has been a prominent theme in organization and strategy research.
Read more >
Lightweight static capabilities - Indiana
This paper demonstrates a lightweight notion of static capabilities (Walker et al. 2000) that brings together increasingly expressive type systems and ...
Read more >
Step 5: Report Your App's Static Capabilities (VSK Fire TV)
With the static capabilities integration, all content is searchable and playable for free, with no user authentication needed.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found