@mrclrchtr/supi-code-intelligence 1.6.0 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +53 -24
- package/node_modules/@mrclrchtr/supi-core/package.json +18 -3
- package/node_modules/@mrclrchtr/supi-core/src/api.ts +27 -82
- package/node_modules/@mrclrchtr/supi-core/src/config/config.ts +1 -1
- package/node_modules/@mrclrchtr/supi-core/src/config.ts +11 -0
- package/node_modules/@mrclrchtr/supi-core/src/context.ts +16 -0
- package/node_modules/@mrclrchtr/supi-core/src/index.ts +27 -82
- package/node_modules/@mrclrchtr/supi-core/src/path.ts +2 -0
- package/node_modules/@mrclrchtr/supi-core/src/project.ts +15 -0
- package/node_modules/@mrclrchtr/supi-core/src/session.ts +4 -0
- package/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +2 -0
- package/node_modules/@mrclrchtr/supi-core/src/settings.ts +9 -0
- package/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +11 -0
- package/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +116 -0
- package/node_modules/@mrclrchtr/supi-core/src/types.ts +2 -0
- package/node_modules/@mrclrchtr/supi-lsp/README.md +13 -8
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/package.json +18 -3
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/api.ts +27 -82
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/config/config.ts +1 -1
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/config.ts +11 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/context.ts +16 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/index.ts +27 -82
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/path.ts +2 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/project.ts +15 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/session.ts +4 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +2 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings.ts +9 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +11 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +116 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/types.ts +2 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/License.txt +11 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/README.md +69 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/browser.d.ts +6 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/browser.js +7 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/browser/main.d.ts +17 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/browser/main.js +76 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/browser/ril.d.ts +12 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/browser/ril.js +156 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/api.d.ts +14 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/api.js +81 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/cancellation.d.ts +32 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/cancellation.js +96 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/connection.d.ts +358 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/connection.js +1214 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/disposable.d.ts +9 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/disposable.js +16 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/encoding.d.ts +52 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/encoding.js +70 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/events.d.ts +39 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/events.js +128 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/is.d.ts +7 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/is.js +35 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/linkedMap.d.ts +53 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/linkedMap.js +398 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageBuffer.d.ts +18 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageBuffer.js +152 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageReader.d.ts +77 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageReader.js +197 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageWriter.d.ts +60 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageWriter.js +115 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messages.d.ts +369 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messages.js +306 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/ral.d.ts +74 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/ral.js +23 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/semaphore.d.ts +10 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/semaphore.js +68 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.d.ts +15 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.js +76 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/node/main.d.ts +63 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/node/main.js +257 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/node/ril.d.ts +13 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/node/ril.js +161 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/node.cmd +5 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/node.d.ts +6 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/node.js +7 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/package.json +45 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/thirdpartynotices.txt +16 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/typings/thenable.d.ts +5 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/License.txt +11 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/README.md +16 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/browser.d.ts +6 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/browser.js +7 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/browser/main.d.ts +4 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/browser/main.js +28 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/api.d.ts +58 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/api.js +77 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/connection.d.ts +187 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/connection.js +15 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/messages.d.ts +51 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/messages.js +44 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.$.d.ts +1 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.$.js +43 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.d.ts +86 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.js +42 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.d.ts +66 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.js +32 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.d.ts +35 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.js +24 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.d.ts +3252 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.d.ts +37 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.js +22 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.d.ts +341 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.js +74 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.d.ts +306 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.js +101 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.d.ts +109 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.js +30 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.d.ts +38 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.js +21 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.d.ts +110 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.js +43 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.d.ts +57 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.js +22 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.d.ts +86 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.js +30 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.js +943 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.d.ts +52 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.js +19 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.d.ts +106 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.js +68 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.d.ts +400 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.js +214 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.d.ts +107 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.js +37 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.d.ts +41 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.js +20 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.d.ts +223 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.js +57 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.d.ts +72 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.js +22 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.d.ts +38 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.js +21 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.d.ts +83 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.js +42 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.d.ts +74 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.js +27 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/utils/is.d.ts +9 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/utils/is.js +46 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/node/main.d.ts +6 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/node/main.js +28 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/metaModel.schema.json +783 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node.cmd +5 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node.d.ts +6 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node.js +7 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/License.txt +11 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/README.md +69 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/browser.d.ts +6 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/browser.js +7 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/main.d.ts +17 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/main.js +76 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/ril.d.ts +12 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/ril.js +156 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/api.d.ts +14 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/api.js +81 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/cancellation.d.ts +32 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/cancellation.js +96 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/connection.d.ts +358 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/connection.js +1212 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/disposable.d.ts +9 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/disposable.js +16 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/encoding.d.ts +52 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/encoding.js +70 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/events.d.ts +39 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/events.js +128 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/is.d.ts +7 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/is.js +35 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/linkedMap.d.ts +53 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/linkedMap.js +398 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageBuffer.d.ts +18 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageBuffer.js +152 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageReader.d.ts +77 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageReader.js +197 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageWriter.d.ts +60 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageWriter.js +115 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messages.d.ts +369 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messages.js +306 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/ral.d.ts +74 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/ral.js +23 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/semaphore.d.ts +10 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/semaphore.js +68 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.d.ts +15 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.js +76 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/main.d.ts +63 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/main.js +257 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/ril.d.ts +13 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/ril.js +161 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/node.cmd +5 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/node.d.ts +6 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/node.js +7 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/package.json +45 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/thirdpartynotices.txt +16 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/typings/thenable.d.ts +5 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/package.json +45 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/thirdpartynotices.txt +31 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/License.txt +11 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/README.md +17 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/esm/main.d.ts +3139 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/esm/main.js +2222 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/esm/package.json +3 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/umd/main.d.ts +3139 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/umd/main.js +2272 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/package.json +38 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/thirdpartynotices.txt +16 -0
- package/node_modules/@mrclrchtr/supi-lsp/package.json +9 -3
- package/node_modules/@mrclrchtr/supi-lsp/src/client/client.ts +8 -5
- package/node_modules/@mrclrchtr/supi-lsp/src/client/transport.ts +79 -190
- package/node_modules/@mrclrchtr/supi-lsp/src/config/config.ts +1 -1
- package/node_modules/@mrclrchtr/supi-lsp/src/config/server-config.ts +38 -0
- package/node_modules/@mrclrchtr/supi-lsp/src/config/types.ts +61 -387
- package/node_modules/@mrclrchtr/supi-lsp/src/format.ts +16 -8
- package/node_modules/@mrclrchtr/supi-lsp/src/handlers/diagnostic-injection.ts +182 -0
- package/node_modules/@mrclrchtr/supi-lsp/src/handlers/session-lifecycle.ts +139 -0
- package/node_modules/@mrclrchtr/supi-lsp/src/handlers/status-command.ts +38 -0
- package/node_modules/@mrclrchtr/supi-lsp/src/handlers/workspace-recovery.ts +92 -0
- package/node_modules/@mrclrchtr/supi-lsp/src/lsp.ts +15 -413
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-helpers.ts +1 -1
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-project-info.ts +1 -1
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-workspace-symbol.ts +1 -1
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager.ts +1 -1
- package/node_modules/@mrclrchtr/supi-lsp/src/session/lsp-state.ts +1 -1
- package/node_modules/@mrclrchtr/supi-lsp/src/session/scanner.ts +1 -1
- package/node_modules/@mrclrchtr/supi-lsp/src/session/service-registry.ts +1 -1
- package/node_modules/@mrclrchtr/supi-lsp/src/session/settings-registration.ts +1 -1
- package/node_modules/@mrclrchtr/supi-lsp/src/tool/guidance.ts +6 -15
- package/node_modules/@mrclrchtr/supi-lsp/src/tool/names.ts +12 -4
- package/node_modules/@mrclrchtr/supi-lsp/src/tool/register-tools.ts +2 -3
- package/node_modules/@mrclrchtr/supi-lsp/src/tool/service-actions.ts +141 -0
- package/node_modules/@mrclrchtr/supi-lsp/src/tool/tool-specs.ts +93 -93
- package/node_modules/@mrclrchtr/supi-lsp/src/utils.ts +1 -1
- package/node_modules/@mrclrchtr/supi-lsp/src/workspace-change.ts +40 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/README.md +26 -15
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/package.json +18 -3
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/api.ts +27 -82
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/config/config.ts +1 -1
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/config.ts +11 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/context.ts +16 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/index.ts +27 -82
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/path.ts +2 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/project.ts +15 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/session.ts +4 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +2 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings.ts +9 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +11 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +116 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/types.ts +2 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/package.json +2 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/session/runtime.ts +1 -1
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/session/service-registry.ts +1 -1
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/guidance.ts +29 -25
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/handlers.ts +196 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/register-tools.ts +107 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/tool-specs.ts +117 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/tree-sitter.ts +4 -300
- package/package.json +4 -4
- package/src/api.ts +16 -0
- package/src/architecture.ts +1 -1
- package/src/brief-focused.ts +5 -5
- package/src/brief.ts +11 -55
- package/src/code-intelligence.ts +12 -77
- package/src/index.ts +16 -0
- package/src/pattern-structured.ts +27 -27
- package/src/presentation/markdown/affected.ts +170 -0
- package/src/presentation/markdown/brief.ts +174 -0
- package/src/presentation/markdown/map.ts +54 -0
- package/src/presentation/markdown/overview.ts +59 -0
- package/src/presentation/markdown/pattern.ts +239 -0
- package/src/presentation/markdown/relations.ts +121 -0
- package/src/prioritization-signals.ts +13 -26
- package/src/query-params.ts +15 -0
- package/src/resolve-target.ts +60 -42
- package/src/search-helpers.ts +19 -6
- package/src/substrates/lsp-adapter.ts +197 -0
- package/src/substrates/tree-sitter-adapter.ts +173 -0
- package/src/substrates/types.ts +113 -0
- package/src/target-resolution.ts +37 -493
- package/src/targeting/query.ts +60 -0
- package/src/targeting/resolve-anchored.ts +80 -0
- package/src/targeting/resolve-file.ts +197 -0
- package/src/targeting/resolve-symbol.ts +110 -0
- package/src/targeting/types.ts +111 -0
- package/src/tool/execute-affected.ts +25 -0
- package/src/tool/execute-brief.ts +51 -0
- package/src/tool/execute-map.ts +35 -0
- package/src/tool/execute-pattern.ts +28 -0
- package/src/tool/execute-relations.ts +40 -0
- package/src/tool/guidance.ts +52 -12
- package/src/tool/register-tools.ts +32 -0
- package/src/tool/tool-specs.ts +165 -0
- package/src/tool/validation.ts +43 -0
- package/src/types.ts +10 -0
- package/src/use-case/build-overview.ts +36 -0
- package/src/use-case/generate-affected.ts +279 -0
- package/src/use-case/generate-brief.ts +324 -0
- package/src/use-case/generate-map.ts +176 -0
- package/src/use-case/generate-pattern.ts +270 -0
- package/src/use-case/generate-relations.ts +392 -0
- package/src/use-case/support/semantic-references.ts +114 -0
- package/src/use-case/types.ts +43 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/action-specs.ts +0 -92
- package/src/actions/affected-action.ts +0 -439
- package/src/actions/brief-action.ts +0 -241
- package/src/actions/callees-action.ts +0 -155
- package/src/actions/callers-action.ts +0 -282
- package/src/actions/implementations-action.ts +0 -208
- package/src/actions/index-action.ts +0 -187
- package/src/actions/pattern-action.ts +0 -392
- package/src/providers/semantic-provider.ts +0 -34
- package/src/providers/structural-provider.ts +0 -26
- package/src/tool/action-specs.ts +0 -66
- package/src/tool-actions.ts +0 -100
package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/package.json
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "vscode-languageserver-types",
|
|
3
|
+
"description": "Types used by the Language server for node",
|
|
4
|
+
"version": "3.17.5",
|
|
5
|
+
"author": "Microsoft Corporation",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/Microsoft/vscode-languageserver-node.git",
|
|
10
|
+
"directory": "types"
|
|
11
|
+
},
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/Microsoft/vscode-languageserver-node/issues"
|
|
14
|
+
},
|
|
15
|
+
"main": "./lib/umd/main.js",
|
|
16
|
+
"typings": "./lib/umd/main",
|
|
17
|
+
"exports": {
|
|
18
|
+
".": {
|
|
19
|
+
"browser": "./lib/esm/main.js",
|
|
20
|
+
"import": "./lib/esm/main.js",
|
|
21
|
+
"default": "./lib/umd/main.js"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"scripts": {
|
|
25
|
+
"prepublishOnly": "echo \"⛔ Can only publish from a secure pipeline ⛔\" && node ../build/npm/fail",
|
|
26
|
+
"prepack": "npm run all:publish",
|
|
27
|
+
"compile": "node ../build/bin/tsc -b ./tsconfig.json",
|
|
28
|
+
"clean": "node ../node_modules/.bin/rimraf lib",
|
|
29
|
+
"watch": "node ../build/bin/tsc -b ./tsconfig.watch.json -w",
|
|
30
|
+
"lint": "node ../node_modules/eslint/bin/eslint.js --ext ts src",
|
|
31
|
+
"test": "node ../node_modules/mocha/bin/_mocha",
|
|
32
|
+
"all": "npm run clean && npm run compile && npm run lint && npm run test",
|
|
33
|
+
"compile:esm": "node ../build/bin/tsc -b ./tsconfig.esm.publish.json && node ../build/bin/fix-esm",
|
|
34
|
+
"compile:umd": "node ../build/bin/tsc -b ./tsconfig.umd.publish.json",
|
|
35
|
+
"all:publish": "git clean -xfd . && npm install && npm run compile:esm && npm run compile:umd && npm run lint && npm run test",
|
|
36
|
+
"preversion": "npm test"
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
NOTICES AND INFORMATION
|
|
2
|
+
Do Not Translate or Localize
|
|
3
|
+
|
|
4
|
+
This software incorporates material from third parties.
|
|
5
|
+
Microsoft makes certain open source code available at https://3rdpartysource.microsoft.com,
|
|
6
|
+
or you may send a check or money order for US $5.00, including the product name,
|
|
7
|
+
the open source component name, platform, and version number, to:
|
|
8
|
+
|
|
9
|
+
Source Code Compliance Team
|
|
10
|
+
Microsoft Corporation
|
|
11
|
+
One Microsoft Way
|
|
12
|
+
Redmond, WA 98052
|
|
13
|
+
USA
|
|
14
|
+
|
|
15
|
+
Notwithstanding any other terms, you may reverse engineer this software to the extent
|
|
16
|
+
required to debug changes to any libraries licensed under the GNU Lesser General Public License.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mrclrchtr/supi-lsp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.0",
|
|
4
4
|
"description": "SuPi LSP extension — Language Server Protocol integration for pi",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -23,10 +23,16 @@
|
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"ignore": "^7.0.5",
|
|
25
25
|
"typescript": "6.0.3",
|
|
26
|
-
"
|
|
26
|
+
"vscode-jsonrpc": "^8.2.1",
|
|
27
|
+
"vscode-languageserver-protocol": "^3.17.5",
|
|
28
|
+
"vscode-languageserver-types": "^3.17.5",
|
|
29
|
+
"@mrclrchtr/supi-core": "1.8.0"
|
|
27
30
|
},
|
|
28
31
|
"bundledDependencies": [
|
|
29
|
-
"@mrclrchtr/supi-core"
|
|
32
|
+
"@mrclrchtr/supi-core",
|
|
33
|
+
"vscode-jsonrpc",
|
|
34
|
+
"vscode-languageserver-protocol",
|
|
35
|
+
"vscode-languageserver-types"
|
|
30
36
|
],
|
|
31
37
|
"peerDependencies": {
|
|
32
38
|
"@earendil-works/pi-ai": "*",
|
|
@@ -173,7 +173,13 @@ export class LspClient {
|
|
|
173
173
|
setTimeout(() => reject(new Error("shutdown timeout")), SHUTDOWN_TIMEOUT_MS),
|
|
174
174
|
),
|
|
175
175
|
]);
|
|
176
|
-
|
|
176
|
+
// Flush the final exit notification before disposing the transport.
|
|
177
|
+
await Promise.race([
|
|
178
|
+
this.rpc.sendNotification("exit"),
|
|
179
|
+
new Promise((_, reject) =>
|
|
180
|
+
setTimeout(() => reject(new Error("exit notification timeout")), SHUTDOWN_TIMEOUT_MS),
|
|
181
|
+
),
|
|
182
|
+
]);
|
|
177
183
|
} catch {
|
|
178
184
|
// Timeout or error — force kill
|
|
179
185
|
}
|
|
@@ -333,10 +339,7 @@ export class LspClient {
|
|
|
333
339
|
|
|
334
340
|
/** Check if server supports pull diagnostics. */
|
|
335
341
|
get hasDiagnosticProvider(): boolean {
|
|
336
|
-
return
|
|
337
|
-
this.capabilities?.diagnosticProvider !== undefined &&
|
|
338
|
-
this.capabilities.diagnosticProvider !== false
|
|
339
|
-
);
|
|
342
|
+
return this.capabilities?.diagnosticProvider !== undefined;
|
|
340
343
|
}
|
|
341
344
|
|
|
342
345
|
/** Notify the server that watched workspace files changed. */
|
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
// JSON-RPC 2.0 transport
|
|
1
|
+
// JSON-RPC 2.0 transport — thin wrapper around vscode-jsonrpc.
|
|
2
|
+
// Handles Content-Length framing, request/response correlation, timeouts,
|
|
3
|
+
// and notification/request dispatching through vscode-jsonrpc's MessageConnection.
|
|
2
4
|
|
|
3
5
|
import type { Readable, Writable } from "node:stream";
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
6
|
+
import {
|
|
7
|
+
CancellationTokenSource,
|
|
8
|
+
createMessageConnection,
|
|
9
|
+
type MessageConnection,
|
|
10
|
+
NullLogger,
|
|
11
|
+
ResponseError,
|
|
12
|
+
StreamMessageReader,
|
|
13
|
+
StreamMessageWriter,
|
|
14
|
+
} from "vscode-jsonrpc/node";
|
|
15
|
+
|
|
14
16
|
const DEFAULT_TIMEOUT_MS = 30_000;
|
|
15
17
|
|
|
16
18
|
// ── Types ─────────────────────────────────────────────────────────────
|
|
@@ -18,29 +20,15 @@ const DEFAULT_TIMEOUT_MS = 30_000;
|
|
|
18
20
|
export type NotificationHandler = (method: string, params: unknown) => void;
|
|
19
21
|
export type RequestHandler = (method: string, params: unknown) => Promise<unknown> | unknown;
|
|
20
22
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
reject: (error: Error) => void;
|
|
24
|
-
timer: ReturnType<typeof setTimeout>;
|
|
25
|
-
}
|
|
23
|
+
/** Re-export ResponseError so callers don't need a separate vscode-jsonrpc import. */
|
|
24
|
+
const JsonRpcRequestError = ResponseError;
|
|
26
25
|
|
|
27
|
-
export
|
|
28
|
-
constructor(
|
|
29
|
-
readonly code: number,
|
|
30
|
-
message: string,
|
|
31
|
-
readonly data?: unknown,
|
|
32
|
-
) {
|
|
33
|
-
super(message);
|
|
34
|
-
this.name = "JsonRpcRequestError";
|
|
35
|
-
}
|
|
36
|
-
}
|
|
26
|
+
export { JsonRpcRequestError };
|
|
37
27
|
|
|
38
28
|
// ── JsonRpcClient ─────────────────────────────────────────────────────
|
|
39
29
|
|
|
40
30
|
export class JsonRpcClient {
|
|
41
|
-
private
|
|
42
|
-
private buffer = Buffer.alloc(0);
|
|
43
|
-
private pending = new Map<JsonRpcId, PendingRequest>();
|
|
31
|
+
private connection: MessageConnection | null = null;
|
|
44
32
|
private notificationHandler: NotificationHandler | null = null;
|
|
45
33
|
private requestHandler: RequestHandler | null = null;
|
|
46
34
|
private closed = false;
|
|
@@ -52,9 +40,31 @@ export class JsonRpcClient {
|
|
|
52
40
|
options?: { timeoutMs?: number },
|
|
53
41
|
) {
|
|
54
42
|
this.timeoutMs = options?.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
43
|
+
|
|
44
|
+
const reader = new StreamMessageReader(this.input);
|
|
45
|
+
const writer = new StreamMessageWriter(this.output);
|
|
46
|
+
|
|
47
|
+
this.connection = createMessageConnection(reader, writer, NullLogger);
|
|
48
|
+
|
|
49
|
+
// Register catch-all notification handler
|
|
50
|
+
this.connection.onNotification((method, params) => {
|
|
51
|
+
this.notificationHandler?.(method, params);
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
// Register catch-all request handler for server-initiated requests
|
|
55
|
+
this.connection.onRequest(async (method, params, _token) => {
|
|
56
|
+
if (!this.requestHandler) {
|
|
57
|
+
throw new JsonRpcRequestError(-32601, `Method not found: ${method}`);
|
|
58
|
+
}
|
|
59
|
+
return this.requestHandler(method, params);
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
// Handle connection close
|
|
63
|
+
this.connection.onClose(() => {
|
|
64
|
+
this.closed = true;
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
this.connection.listen();
|
|
58
68
|
}
|
|
59
69
|
|
|
60
70
|
/** Register a handler for server notifications (no id). */
|
|
@@ -73,176 +83,55 @@ export class JsonRpcClient {
|
|
|
73
83
|
params?: unknown,
|
|
74
84
|
options?: { timeoutMs?: number },
|
|
75
85
|
): Promise<unknown> {
|
|
76
|
-
if (this.closed) {
|
|
86
|
+
if (this.closed || !this.connection) {
|
|
77
87
|
return Promise.reject(new Error("JSON-RPC client is closed"));
|
|
78
88
|
}
|
|
79
89
|
|
|
80
|
-
const id = this.nextId++;
|
|
81
90
|
const timeoutMs = options?.timeoutMs ?? this.timeoutMs;
|
|
82
|
-
const
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
const
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
91
|
+
const tokenSource = new CancellationTokenSource();
|
|
92
|
+
|
|
93
|
+
const timer = setTimeout(() => tokenSource.cancel(), timeoutMs);
|
|
94
|
+
|
|
95
|
+
const request = this.connection.sendRequest(method, params, tokenSource.token);
|
|
96
|
+
|
|
97
|
+
// Race the request against a timeout so callers don't hang forever.
|
|
98
|
+
// The CancellationToken is also passed to sendRequest so the connection
|
|
99
|
+
// can short-circuit writes and cleanup when the token fires.
|
|
100
|
+
const promise = Promise.race([
|
|
101
|
+
request,
|
|
102
|
+
new Promise<never>((_, reject) =>
|
|
103
|
+
setTimeout(
|
|
104
|
+
() => reject(new Error(`Request ${method} timed out after ${timeoutMs}ms`)),
|
|
105
|
+
timeoutMs,
|
|
106
|
+
),
|
|
107
|
+
),
|
|
108
|
+
]).finally(() => clearTimeout(timer));
|
|
109
|
+
|
|
110
|
+
// Prevent unhandled rejection when dispose() cancels requests
|
|
95
111
|
promise.catch(() => {});
|
|
96
112
|
return promise;
|
|
97
113
|
}
|
|
98
114
|
|
|
99
|
-
/**
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
115
|
+
/**
|
|
116
|
+
* Send a notification (no response expected).
|
|
117
|
+
*
|
|
118
|
+
* Returns the underlying write promise so ordering-sensitive cleanup paths
|
|
119
|
+
* can await the final flush. A no-op catch is still attached to prevent
|
|
120
|
+
* unhandled rejections when callers intentionally fire-and-forget.
|
|
121
|
+
*/
|
|
122
|
+
sendNotification(method: string, params?: unknown): Promise<void> {
|
|
123
|
+
if (this.closed || !this.connection) return Promise.resolve();
|
|
124
|
+
const promise = this.connection.sendNotification(method, params);
|
|
125
|
+
promise.catch(() => {});
|
|
126
|
+
return promise;
|
|
104
127
|
}
|
|
105
128
|
|
|
106
|
-
/** Clean up
|
|
129
|
+
/** Clean up the connection. */
|
|
107
130
|
dispose(): void {
|
|
108
131
|
this.closed = true;
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
this.pending.delete(id);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
// ── Private ───────────────────────────────────────────────────────
|
|
117
|
-
|
|
118
|
-
private writeMessage(msg: JsonRpcMessage): void {
|
|
119
|
-
const body = JSON.stringify(msg);
|
|
120
|
-
const contentLength = Buffer.byteLength(body, "utf-8");
|
|
121
|
-
const header = `${CONTENT_LENGTH}${contentLength}${HEADER_DELIMITER}`;
|
|
122
|
-
this.output.write(header + body);
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
private onData(chunk: Buffer): void {
|
|
126
|
-
this.buffer = Buffer.concat([this.buffer, chunk]);
|
|
127
|
-
this.processBuffer();
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
private processBuffer(): void {
|
|
131
|
-
while (true) {
|
|
132
|
-
// Look for header delimiter
|
|
133
|
-
const headerEnd = this.buffer.indexOf(HEADER_DELIMITER);
|
|
134
|
-
if (headerEnd === -1) return;
|
|
135
|
-
|
|
136
|
-
// Parse Content-Length from headers
|
|
137
|
-
const headerText = this.buffer.subarray(0, headerEnd).toString("utf-8");
|
|
138
|
-
const contentLength = parseContentLength(headerText);
|
|
139
|
-
if (contentLength === null) {
|
|
140
|
-
// Malformed header — skip past delimiter and try again
|
|
141
|
-
this.buffer = this.buffer.subarray(headerEnd + HEADER_DELIMITER.length);
|
|
142
|
-
continue;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
// Check if we have the full body
|
|
146
|
-
const bodyStart = headerEnd + HEADER_DELIMITER.length;
|
|
147
|
-
const messageEnd = bodyStart + contentLength;
|
|
148
|
-
if (this.buffer.length < messageEnd) {
|
|
149
|
-
return; // Need more data — partial message
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
// Extract and parse the body
|
|
153
|
-
const body = this.buffer.subarray(bodyStart, messageEnd).toString("utf-8");
|
|
154
|
-
this.buffer = this.buffer.subarray(messageEnd);
|
|
155
|
-
|
|
156
|
-
try {
|
|
157
|
-
const msg = JSON.parse(body) as JsonRpcMessage;
|
|
158
|
-
this.handleMessage(msg);
|
|
159
|
-
} catch {
|
|
160
|
-
// Malformed JSON — skip
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
private handleMessage(msg: JsonRpcMessage): void {
|
|
166
|
-
// Response (has id, has result or error)
|
|
167
|
-
if ("id" in msg && msg.id != null && ("result" in msg || "error" in msg)) {
|
|
168
|
-
const response = msg as JsonRpcResponse;
|
|
169
|
-
const id = response.id;
|
|
170
|
-
if (id === null) return;
|
|
171
|
-
const pending = this.pending.get(id);
|
|
172
|
-
if (pending) {
|
|
173
|
-
this.pending.delete(id);
|
|
174
|
-
clearTimeout(pending.timer);
|
|
175
|
-
if (response.error) {
|
|
176
|
-
pending.reject(new Error(`LSP error ${response.error.code}: ${response.error.message}`));
|
|
177
|
-
} else {
|
|
178
|
-
pending.resolve(response.result);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
return;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
// Notification (no id)
|
|
185
|
-
if ("method" in msg && !("id" in msg)) {
|
|
186
|
-
const notification = msg as JsonRpcNotification;
|
|
187
|
-
this.notificationHandler?.(notification.method, notification.params);
|
|
188
|
-
return;
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
// Request from server (has id + method)
|
|
192
|
-
if ("method" in msg && "id" in msg && msg.id != null) {
|
|
193
|
-
void this.handleInboundRequest(msg as JsonRpcRequest);
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
private async handleInboundRequest(request: JsonRpcRequest): Promise<void> {
|
|
198
|
-
if (this.closed) return;
|
|
199
|
-
|
|
200
|
-
try {
|
|
201
|
-
if (!this.requestHandler) {
|
|
202
|
-
throw new JsonRpcRequestError(-32601, `Method not found: ${request.method}`);
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
const result = await this.requestHandler(request.method, request.params);
|
|
206
|
-
this.writeMessage({
|
|
207
|
-
jsonrpc: "2.0",
|
|
208
|
-
id: request.id,
|
|
209
|
-
result: result ?? null,
|
|
210
|
-
} satisfies JsonRpcResponse);
|
|
211
|
-
} catch (error) {
|
|
212
|
-
const failure =
|
|
213
|
-
error instanceof JsonRpcRequestError
|
|
214
|
-
? error
|
|
215
|
-
: new JsonRpcRequestError(-32603, error instanceof Error ? error.message : String(error));
|
|
216
|
-
this.writeMessage({
|
|
217
|
-
jsonrpc: "2.0",
|
|
218
|
-
id: request.id,
|
|
219
|
-
error: {
|
|
220
|
-
code: failure.code,
|
|
221
|
-
message: failure.message,
|
|
222
|
-
...(failure.data !== undefined ? { data: failure.data } : {}),
|
|
223
|
-
},
|
|
224
|
-
} satisfies JsonRpcResponse);
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
private onClose(): void {
|
|
229
|
-
this.closed = true;
|
|
230
|
-
for (const [id, p] of this.pending) {
|
|
231
|
-
clearTimeout(p.timer);
|
|
232
|
-
p.reject(new Error("JSON-RPC connection closed"));
|
|
233
|
-
this.pending.delete(id);
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
// ── Helpers ───────────────────────────────────────────────────────────
|
|
239
|
-
|
|
240
|
-
function parseContentLength(header: string): number | null {
|
|
241
|
-
for (const line of header.split("\r\n")) {
|
|
242
|
-
if (line.startsWith(CONTENT_LENGTH)) {
|
|
243
|
-
const value = parseInt(line.slice(CONTENT_LENGTH.length), 10);
|
|
244
|
-
if (Number.isFinite(value) && value >= 0) return value;
|
|
132
|
+
if (this.connection) {
|
|
133
|
+
this.connection.dispose();
|
|
134
|
+
this.connection = null;
|
|
245
135
|
}
|
|
246
136
|
}
|
|
247
|
-
return null;
|
|
248
137
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import * as fs from "node:fs";
|
|
4
4
|
import * as path from "node:path";
|
|
5
|
-
import { loadSupiConfigForScope } from "@mrclrchtr/supi-core/
|
|
5
|
+
import { loadSupiConfigForScope } from "@mrclrchtr/supi-core/config";
|
|
6
6
|
import type { LspConfig, ServerConfig } from "./types.ts";
|
|
7
7
|
|
|
8
8
|
// Load defaults at module level — resolve relative to this file.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// SuPi-specific server configuration types — not part of the LSP specification.
|
|
2
|
+
// These are our own types for server discovery, configuration, and status tracking.
|
|
3
|
+
|
|
4
|
+
export interface ServerConfig {
|
|
5
|
+
command: string;
|
|
6
|
+
args?: string[];
|
|
7
|
+
fileTypes: string[];
|
|
8
|
+
rootMarkers: string[];
|
|
9
|
+
enabled?: boolean;
|
|
10
|
+
initializationOptions?: unknown;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/** LSP configuration keyed by language name (e.g. `typescript`, `python`). */
|
|
14
|
+
export interface LspConfig {
|
|
15
|
+
servers: Record<string, ServerConfig>;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export interface DetectedProjectServer {
|
|
19
|
+
name: string;
|
|
20
|
+
root: string;
|
|
21
|
+
fileTypes: string[];
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface ProjectServerInfo extends DetectedProjectServer {
|
|
25
|
+
status: "running" | "error" | "unavailable";
|
|
26
|
+
supportedActions: string[];
|
|
27
|
+
openFiles: string[];
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/** A language whose source files are present but the server binary is missing. */
|
|
31
|
+
export interface MissingServer {
|
|
32
|
+
/** Language name (e.g. "python", "rust"). */
|
|
33
|
+
name: string;
|
|
34
|
+
/** Server command that was not found on PATH. */
|
|
35
|
+
command: string;
|
|
36
|
+
/** File extensions found in the project (subset of server.fileTypes). */
|
|
37
|
+
foundExtensions: string[];
|
|
38
|
+
}
|