sublimelsp / LSP-volar

Vue support for Sublime's LSP plugin
MIT License
84 stars 8 forks source link

Update Volar to v1.6.5 #174

Closed rchl closed 1 year ago

rchl commented 1 year ago

I've prepared an update to latest version but we should still wait until things look more stable and regression free.

I'm judging that based on observing its repo issues and own experience.

predragnikolic commented 1 year ago

On Linux, Volar throws this error right after initialize, and I see a message "LSP-volar crashed 5 times in the last 180seconds."

TypeError: (0 , language_service_1.defineProvide) is not a function
:: [13:37:50.657] --> LSP-volar initialize (1): {'initializationOptions': {'configFilePath': './volar.config.js', 'fullCompletionList': False, 'reverseConfigFilePriority': False, 'diagnosticModel': 'pull', 'additionalExtensions': [], 'typescript': {'tsdk': '/home/predragnikolic/Documents/sandbox/my-vue-app/node_modules/typescript/lib'}, 'json': {'customBlockSchemaUrls': {}}, 'ignoreTriggerCharacters': [], 'maxFileSize': 20971520}, 'processId': 102815, 'clientInfo': {'version': '1.23.0', 'name': 'Sublime Text LSP'}, 'capabilities': {'textDocument': {'documentLink': {'dynamicRegistration': True, 'tooltipSupport': True}, 'documentHighlight': {'dynamicRegistration': True}, 'publishDiagnostics': {'relatedInformation': True, 'versionSupport': True, 'tagSupport': {'valueSet': [1, 2]}, 'dataSupport': True, 'codeDescriptionSupport': True}, 'selectionRange': {'dynamicRegistration': True}, 'documentSymbol': {'dynamicRegistration': True, 'symbolKind': {'valueSet': [15, 14, 17, 13, 6, 19, 25, 16, 23, 3, 21, 22, 1, 2, 24, 4, 11, 7, 5, 26, 20, 9, 12, 10, 18, 8]}, 'tagSupport': {'valueSet': [1]}, 'hierarchicalDocumentSymbolSupport': True}, 'declaration': {'dynamicRegistration': True, 'linkSupport': True}, 'diagnostic': {'dynamicRegistration': True, 'relatedDocumentSupport': True}, 'references': {'dynamicRegistration': True}, 'formatting': {'dynamicRegistration': True}, 'rangeFormatting': {'dynamicRegistration': True}, 'semanticTokens': {'dynamicRegistration': True, 'multilineTokenSupport': True, 'formats': ['relative'], 'requests': {'full': {'delta': True}, 'range': True}, 'tokenTypes': ['string', 'parameter', 'variable', 'event', 'class', 'comment', 'modifier', 'method', 'operator', 'number', 'struct', 'namespace', 'decorator', 'enumMember', 'macro', 'typeParameter', 'property', 'interface', 'type', 'regexp', 'function', 'enum', 'keyword'], 'augmentsSyntaxTokens': True, 'overlappingTokenSupport': False, 'tokenModifiers': ['definition', 'async', 'abstract', 'modification', 'declaration', 'readonly', 'deprecated', 'defaultLibrary', 'static', 'documentation']}, 'signatureHelp': {'dynamicRegistration': True, 'contextSupport': True, 'signatureInformation': {'activeParameterSupport': True, 'documentationFormat': ['markdown', 'plaintext'], 'parameterInformation': {'labelOffsetSupport': True}}}, 'completion': {'dynamicRegistration': True, 'completionItemKind': {'valueSet': [2, 15, 11, 9, 6, 7, 21, 19, 22, 1, 20, 12, 23, 17, 25, 4, 18, 8, 16, 10, 24, 3, 13, 14, 5]}, 'completionList': {'itemDefaults': ['editRange', 'insertTextFormat', 'data']}, 'insertTextMode': 2, 'completionItem': {'snippetSupport': True, 'documentationFormat': ['markdown', 'plaintext'], 'tagSupport': {'valueSet': [1]}, 'insertTextModeSupport': {'valueSet': [2]}, 'insertReplaceSupport': True, 'resolveSupport': {'properties': ['detail', 'documentation', 'additionalTextEdits']}, 'labelDetailsSupport': True, 'deprecatedSupport': True}}, 'synchronization': {'dynamicRegistration': True, 'willSave': True, 'didSave': True, 'willSaveWaitUntil': True}, 'typeDefinition': {'dynamicRegistration': True, 'linkSupport': True}, 'colorProvider': {'dynamicRegistration': True}, 'definition': {'dynamicRegistration': True, 'linkSupport': True}, 'implementation': {'dynamicRegistration': True, 'linkSupport': True}, 'rename': {'dynamicRegistration': True, 'prepareSupportDefaultBehavior': 1, 'prepareSupport': True}, 'codeAction': {'dynamicRegistration': True, 'isPreferredSupport': True, 'codeActionLiteralSupport': {'codeActionKind': {'valueSet': ['quickfix', 'refactor', 'refactor.extract', 'refactor.inline', 'refactor.rewrite', 'source.fixAll', 'source.organizeImports']}}, 'dataSupport': True, 'resolveSupport': {'properties': ['edit']}}, 'callHierarchy': {'dynamicRegistration': True}, 'hover': {'dynamicRegistration': True, 'contentFormat': ['markdown', 'plaintext']}, 'typeHierarchy': {'dynamicRegistration': True}, 'codeLens': {'dynamicRegistration': True}, 'inlayHint': {'dynamicRegistration': True, 'resolveSupport': {'properties': ['textEdits', 'label.command']}}}, 'general': {'regularExpressions': {'engine': 'ECMAScript'}, 'markdown': {'version': '3.2.2', 'parser': 'Python-Markdown'}}, 'workspace': {'inlayHint': {'refreshSupport': True}, 'workspaceEdit': {'failureHandling': 'abort', 'documentChanges': True}, 'workspaceFolders': True, 'didChangeConfiguration': {'dynamicRegistration': True}, 'semanticTokens': {'refreshSupport': True}, 'symbol': {'dynamicRegistration': True, 'symbolKind': {'valueSet': [15, 14, 17, 13, 6, 19, 25, 16, 23, 3, 21, 22, 1, 2, 24, 4, 11, 7, 5, 26, 20, 9, 12, 10, 18, 8]}, 'tagSupport': {'valueSet': [1]}}, 'configuration': True, 'codeLens': {'refreshSupport': True}, 'applyEdit': True, 'executeCommand': {}, 'diagnostics': {'refreshSupport': True}, 'didChangeWatchedFiles': {'dynamicRegistration': True}}, 'window': {'workDoneProgress': True, 'showMessage': {'messageActionItem': {'additionalPropertiesSupport': True}}, 'showDocument': {'support': True}}}, 'workspaceFolders': [{'name': 'my-vue-app', 'uri': 'file:///home/predragnikolic/Documents/sandbox/my-vue-app'}], 'rootPath': '/home/predragnikolic/Documents/sandbox/my-vue-app', 'rootUri': 'file:///home/predragnikolic/Documents/sandbox/my-vue-app'}
:: [13:37:51.196] <<< LSP-volar (1) (duration: 538ms): {'capabilities': {'workspace': {'fileOperations': {'willRename': {'filters': [{'pattern': {'glob': '**/*.{js,cjs,mjs,ts,cts,mts,jsx,tsx,json,vue}'}}]}}}, 'codeActionProvider': {'codeActionKinds': ['', 'quickfix', 'refactor', 'refactor.extract', 'refactor.inline', 'refactor.rewrite', 'source', 'source.fixAll', 'source.organizeImports'], 'resolveProvider': True}, 'implementationProvider': True, 'renameProvider': {'prepareProvider': True}, 'semanticTokensProvider': {'full': False, 'legend': {'tokenTypes': ['namespace', 'class', 'enum', 'interface', 'struct', 'typeParameter', 'type', 'parameter', 'variable', 'property', 'enumMember', 'decorator', 'event', 'function', 'method', 'macro', 'label', 'comment', 'string', 'keyword', 'number', 'regexp', 'operator'], 'tokenModifiers': ['declaration', 'definition', 'readonly', 'static', 'deprecated', 'abstract', 'async', 'modification', 'documentation', 'defaultLibrary']}, 'range': True}, 'definitionProvider': True, 'completionProvider': {'triggerCharacters': ['.', '"', "'", '`', '/', '<', '@', '#', ' ', '*', ':', '=', '-', '>', '+', '^', '(', ')', '[', ']', '$', '{', '}'], 'resolveProvider': True}, 'colorProvider': True, 'documentSymbolProvider': True, 'linkedEditingRangeProvider': True, 'documentLinkProvider': {'resolveProvider': True}, 'documentRangeFormattingProvider': True, 'textDocumentSync': {'change': {'syncKind': 2}, 'didClose': {}, 'didOpen': {}, 'save': {}}, 'documentOnTypeFormattingProvider': {'firstTriggerCharacter': ';', 'moreTriggerCharacter': ['}', '\n']}, 'signatureHelpProvider': {'retriggerCharacters': [')'], 'triggerCharacters': ['(', ',', '<']}, 'documentHighlightProvider': True, 'referencesProvider': True, 'hoverProvider': True, 'documentFormattingProvider': True, 'codeLensProvider': {'resolveProvider': True}, 'workspaceSymbolProvider': True, 'foldingRangeProvider': True, 'inlayHintProvider': {'resolveProvider': True}, 'callHierarchyProvider': True, 'selectionRangeProvider': True, 'typeDefinitionProvider': True}}
:: [13:37:51.196]  -> LSP-volar initialized: {}
:: [13:37:51.198]  -> LSP-volar workspace/didChangeConfiguration: {'settings': {'less': {'format': {'enable': True, 'spaceAroundSelectorSeparator': False, 'newlineBetweenSelectors': True, 'braceStyle': 'collapse', 'preserveNewLines': True, 'maxPreserveNewLines': None, 'newlineBetweenRules': True}, 'hover': {'references': True, 'documentation': True}, 'completion': {'completePropertyWithSemicolon': True, 'triggerPropertyValueCompletion': True}}, 'volar': {'format': {'initialIndent': {'typescript': False, 'json5': False, 'typescriptreact': False, 'jsonc': False, 'css': False, 'json': False, 'less': False, 'jade': False, 'scss': False, 'javascript': False, 'sass': False, 'javascriptreact': False, 'html': False}}}, 'emmet': {'variables': {}, 'preferences': {}, 'showAbbreviationSuggestions': True, 'showSuggestionsAsSnippets': False, 'excludeLanguages': ['markdown'], 'syntaxProfiles': {}, 'showExpandedAbbreviation': 'always'}, 'scss': {'format': {'enable': True, 'spaceAroundSelectorSeparator': False, 'newlineBetweenSelectors': True, 'braceStyle': 'collapse', 'preserveNewLines': True, 'maxPreserveNewLines': None, 'newlineBetweenRules': True}, 'hover': {'references': True, 'documentation': True}, 'completion': {'completePropertyWithSemicolon': True, 'triggerPropertyValueCompletion': True}}, 'javascript': {'suggest': {'includeCompletionsForImportStatements': True, 'includeCompletionsWithSnippetText': True, 'includeAutomaticOptionalChainCompletions': True, 'autoImports': False, 'completeFunctionCalls': False, 'jsdoc': {'generateReturns': True}, 'classMemberSnippets': {'enabled': True}, 'objectLiteralMethodSnippets': {'enabled': True}}, 'inlayHints': {'enumMemberValues': {'enabled': False}, 'functionLikeReturnTypes': {'enabled': False}, 'parameterNames': {'suppressWhenArgumentMatchesName': True, 'enabled': 'none'}, 'variableTypes': {'suppressWhenTypeMatchesName': {'enabled': True}, 'enabled': False}, 'parameterTypes': {'enabled': False}, 'propertyDeclarationTypes': {'enabled': False}}, 'preferences': {'importModuleSpecifierEnding': 'auto', 'jsxAttributeCompletionStyle': 'auto', 'importModuleSpecifier': 'shortest', 'autoImportFileExcludePatterns': [], 'quoteStyle': 'auto'}}, 'typescript': {'suggest': {'includeCompletionsForImportStatements': True, 'includeCompletionsWithSnippetText': True, 'includeAutomaticOptionalChainCompletions': True, 'autoImports': False, 'completeFunctionCalls': False, 'jsdoc': {'generateReturns': True}, 'classMemberSnippets': {'enabled': True}, 'objectLiteralMethodSnippets': {'enabled': True}}, 'inlayHints': {'enumMemberValues': {'enabled': False}, 'functionLikeReturnTypes': {'enabled': False}, 'parameterNames': {'suppressWhenArgumentMatchesName': True, 'enabled': 'none'}, 'variableTypes': {'suppressWhenTypeMatchesName': {'enabled': True}, 'enabled': False}, 'parameterTypes': {'enabled': False}, 'propertyDeclarationTypes': {'enabled': False}}, 'preferences': {'importModuleSpecifierEnding': 'auto', 'jsxAttributeCompletionStyle': 'auto', 'importModuleSpecifier': 'shortest', 'autoImportFileExcludePatterns': [], 'quoteStyle': 'auto'}}, 'html': {'format': {'enable': True, 'wrapAttributes': 'auto', 'unformatted': 'wbr', 'maxPreserveNewLines': None, 'preserveNewLines': True, 'indentHandlebars': False, 'extraLiners': 'head, body, /html', 'wrapLineLength': 120, 'contentUnformatted': 'pre,code,textarea', 'wrapAttributesIndentSize': None, 'templating': False, 'indentInnerHtml': False, 'unformattedContentDelimiter': ''}, 'customData': [], 'autoClosingTags': True, 'autoCreateQuotes': True, 'hover': {'references': True, 'documentation': True}, 'completion': {'attributeDefaultValue': 'doublequotes'}}, 'css': {'format': {'enable': True, 'spaceAroundSelectorSeparator': False, 'newlineBetweenSelectors': True, 'braceStyle': 'collapse', 'preserveNewLines': True, 'maxPreserveNewLines': None, 'newlineBetweenRules': True}, 'hover': {'references': True, 'documentation': True}, 'customData': [], 'completion': {'completePropertyWithSemicolon': True, 'triggerPropertyValueCompletion': True}}, 'vue': {'features': {'complete': {'normalizeComponentImportName': True}}, 'inlayHints': {'optionsWrapper': True, 'missingProps': False, 'inlineHandlerLeading': False}, 'complete': {'casing': {'props': 'autoKebab', 'tags': 'autoPascal'}}}}}
:: [13:37:51.209]  -> LSP-volar textDocument/didOpen: {'textDocument': {'languageId': 'vue', 'version': 0, 'uri': 'file:///home/predragnikolic/Documents/sandbox/my-vue-app/src/App.vue', 'text': '<script setup lang="ts">\nlet xas = 213\n\nnewFunction();\n\n</script>\n\n'}}
:: [13:37:51.210] --> LSP-volar textDocument/documentColor (2): {'textDocument': {'uri': 'file:///home/predragnikolic/Documents/sandbox/my-vue-app/src/App.vue'}}
:: [13:37:51.214] --> LSP-volar textDocument/inlayHint (3): {'textDocument': {'uri': 'file:///home/predragnikolic/Documents/sandbox/my-vue-app/src/App.vue'}, 'range': {'end': {'line': 7, 'character': 0}, 'start': {'line': 0, 'character': 0}}}
:: [13:37:51.214] --> LSP-volar textDocument/documentLink (4): {'textDocument': {'uri': 'file:///home/predragnikolic/Documents/sandbox/my-vue-app/src/App.vue'}}
:: [13:37:51.215] --> LSP-volar textDocument/codeLens (5): {'textDocument': {'uri': 'file:///home/predragnikolic/Documents/sandbox/my-vue-app/src/App.vue'}}
:: [13:37:51.226] <-- LSP-volar client/registerCapability (0): {'registrations': [{'id': 'a2692f8c-f9a1-462c-ac6c-483ae64067ac', 'method': 'workspace/didChangeConfiguration', 'registerOptions': {}}]}
:: [13:37:51.226] >>> LSP-volar (0) (duration: 0ms): None
:: [13:37:51.226] <-- LSP-volar client/registerCapability (1): {'registrations': [{'id': '5a6fa665-c6fb-46ec-b815-689673d059f1', 'method': 'workspace/didChangeWorkspaceFolders', 'registerOptions': {}}]}
:: [13:37:51.226] >>> LSP-volar (1) (duration: 0ms): None
:: [13:37:51.226] <-- LSP-volar client/registerCapability (2): {'registrations': [{'id': '2d7f632d-fa52-49a5-9a4b-e681df8eb696', 'method': 'workspace/didChangeWatchedFiles', 'registerOptions': {'watchers': [{'globPattern': '**/*.{js,cjs,mjs,ts,cts,mts,jsx,tsx,json,vue}'}]}}]}
:: [13:37:51.229] >>> LSP-volar (2) (duration: 3ms): None
LSP-volar: /home/predragnikolic/.cache/sublime-text/Package Storage/LSP-volar/16.17.1/server/node_modules/volar-service-typescript/out/index.js:154
LSP-volar:             ...(0, language_service_1.defineProvide)(exports.injectionKeys.typescript, () => ts),
LSP-volar:                                                     ^
LSP-volar: 
LSP-volar: TypeError: (0 , language_service_1.defineProvide) is not a function
LSP-volar:     at /home/predragnikolic/.cache/sublime-text/Package Storage/LSP-volar/16.17.1/server/node_modules/volar-service-typescript/out/index.js:154:53
LSP-volar:     at services.typescript (/home/predragnikolic/.cache/sublime-text/Package Storage/LSP-volar/16.17.1/server/node_modules/@vue/language-service/out/languageService.js:37:63)
LSP-volar:     at createLanguageServicePluginContext (/home/predragnikolic/.cache/sublime-text/Package Storage/LSP-volar/16.17.1/server/node_modules/@vue/language-server/node_modules/@volar/language-service/out/baseLanguageService.js:160:43)
LSP-volar:     at Object.createLanguageService (/home/predragnikolic/.cache/sublime-text/Package Storage/LSP-volar/16.17.1/server/node_modules/@vue/language-server/node_modules/@volar/language-service/out/baseLanguageService.js:43:21)
LSP-volar:     at Object.getLanguageService (/home/predragnikolic/.cache/sublime-text/Package Storage/LSP-volar/16.17.1/server/node_modules/@vue/language-server/node_modules/@volar/language-server/out/common/project.js:89:42)
LSP-volar:     at getLanguageService (/home/predragnikolic/.cache/sublime-text/Package Storage/LSP-volar/16.17.1/server/node_modules/@vue/language-server/node_modules/@volar/language-server/out/common/features/languageFeatures.js:311:25)
LSP-volar:     at async Immediate.<anonymous> (/home/predragnikolic/.cache/sublime-text/Package Storage/LSP-volar/16.17.1/server/node_modules/@vue/language-server/node_modules/@volar/language-server/out/common/features/languageFeatures.js:288:33)
predragnikolic commented 1 year ago

The last commits do not crash the server on Linux.

rchl commented 1 year ago

I suppose we could try releasing this...

I kinda lost track of how many regressions are there compared to the current release but if we're gonna wait for all to be addressed then we'll never release a new version.