sublimelsp / LSP-volar

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

Bump @volar/vue-language-server from 0.40.7 to 0.40.9 in /server #123

Closed dependabot[bot] closed 2 years ago

dependabot[bot] commented 2 years ago

Bumps @volar/vue-language-server from 0.40.7 to 0.40.9.

Changelog

Sourced from @​volar/vue-language-server's changelog.

0.40.9 (2022/9/6)

  • feat: improve vue document formatting
  • fix: script format loss indent (#1823)

0.40.8 (2022/9/6)

  • feat: add volar.format.initialIndent option for format <style>, <script> with initial indent (#1806)
  • perf: cache ts.ScriptSnapshot.fromString result on formatting
  • fix: volar.config.js not working since v0.40.7 (#1819)
  • fix: should not incremental update if SFC parse failed (johnsoncodehk/volar#1807)

Our Sponsors

Commits


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
predragnikolic commented 2 years ago

Do not merge yet, While I added the volar.format.initialIndent and trying to run LSP: Format file from the command palette with the following volar setting:

// LSP-volar.sublime-settings
{
    "settings": {
        "volar.format.initialIndent": {
            "html": false,
            "javascript": true
        },
    }
}

on a file that looks like this:

<template>
  <div class="body">

  </div>
</template>

<script>
let x = document.querySelector('body').accessKey
export default {

}
</script>

<style scoped>
.body {
  background: red
}
</style>

I expect to see formatting changes, but I see no change.

I'm investigating this.

predragnikolic commented 2 years ago

Note volar.format.initialIndent works in VS code, i wonder if there is any additional client glue code required for this to work.

predragnikolic commented 2 years ago

It does work in coc-volar as well https://github.com/yaegassy/coc-volar/pull/209#issuecomment-1237947676 So the issue must be at my side :)

predragnikolic commented 2 years ago

Here are server logs when running the format request in VS Code.

``` [Trace - 3:02:47 PM] Sending request 'textDocument/formatting - (42)'. Params: { "textDocument": { "uri": "file:///home/predragnikolic/Documents/sandbox/my-react-ts-app/src/comp/hello.vue" }, "options": { "tabSize": 4, "insertSpaces": true } } [Trace - 3:02:47 PM] Received request 'workspace/configuration - (15)'. Params: { "items": [ { "section": "volar.format.initialIndent" } ] } [Trace - 3:02:47 PM] Sending response 'workspace/configuration - (15)'. Processing request took 0ms Result: [ { "html": true, "css": true } ] [Trace - 3:02:47 PM] Received request 'workspace/configuration - (16)'. Params: { "items": [ { "scopeUri": "file:///untitled.vue.template.html", "section": "html.format" } ] } [Trace - 3:02:47 PM] Sending response 'workspace/configuration - (16)'. Processing request took 0ms Result: [ { "enable": true, "wrapLineLength": 120, "unformatted": "wbr", "contentUnformatted": "pre,code,textarea", "indentInnerHtml": false, "preserveNewLines": true, "maxPreserveNewLines": null, "indentHandlebars": false, "extraLiners": "head, body, /html", "wrapAttributes": "auto", "wrapAttributesIndentSize": null, "templating": false, "unformattedContentDelimiter": "" } ] [Trace - 3:02:47 PM] Received request 'workspace/configuration - (17)'. Params: { "items": [ { "scopeUri": "file:///untitled.vue.script_format.js", "section": "javascript.format.enable" } ] } [Trace - 3:02:47 PM] Sending response 'workspace/configuration - (17)'. Processing request took 0ms Result: [ true ] [Trace - 3:02:47 PM] Received request 'workspace/configuration - (18)'. Params: { "items": [ { "scopeUri": "file:///untitled.vue.script_format.js", "section": "javascript.format" } ] } [Trace - 3:02:47 PM] Sending response 'workspace/configuration - (18)'. Processing request took 0ms Result: [ { "enable": true, "insertSpaceAfterCommaDelimiter": true, "insertSpaceAfterConstructor": false, "insertSpaceAfterSemicolonInForStatements": true, "insertSpaceBeforeAndAfterBinaryOperators": true, "insertSpaceAfterKeywordsInControlFlowStatements": true, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": true, "insertSpaceBeforeFunctionParenthesis": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingEmptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, "placeOpenBraceOnNewLineForFunctions": false, "placeOpenBraceOnNewLineForControlBlocks": false, "semicolons": "ignore" } ] [Trace - 3:02:47 PM] Received request 'workspace/configuration - (19)'. Params: { "items": [ { "scopeUri": "file:///untitled.vue.style_0.css", "section": "css.format" } ] } [Trace - 3:02:47 PM] Sending response 'workspace/configuration - (19)'. Processing request took 0ms Result: [ { "enable": true, "newlineBetweenSelectors": true, "newlineBetweenRules": true, "spaceAroundSelectorSeparator": false, "braceStyle": "collapse", "preserveNewLines": true, "maxPreserveNewLines": null } ] [Trace - 3:02:47 PM] Received response 'textDocument/formatting - (42)' in 8ms. Result: [ { "range": { "start": { "line": 0, "character": 0 }, "end": { "line": 17, "character": 8 } }, "newText": "\n \n\n \n" } ] [Trace - 3:02:47 PM] Sending notification 'textDocument/didChange'. Params: { "textDocument": { "uri": "file:///home/predragnikolic/Documents/sandbox/my-react-ts-app/src/comp/hello.vue", "version": 5 }, "contentChanges": [ { "range": { "start": { "line": 1, "character": 0 }, "end": { "line": 1, "character": 0 } }, "rangeLength": 0, "text": " " } ] } [Trace - 3:02:47 PM] Sending request 'vue/autoInsert - (43)'. Params: { "textDocument": { "uri": "file:///home/predragnikolic/Documents/sandbox/my-react-ts-app/src/comp/hello.vue" }, "position": { "line": 1, "character": 4 }, "options": { "lastChange": { "range": { "start": { "line": 1, "character": 0 }, "end": { "line": 1, "character": 0 } }, "rangeOffset": 11, "rangeLength": 0, "text": " " } } } ```

Here are server logs when running the format request in ST.

``` :: --> LSP-volar textDocument/formatting(13): {'textDocument': {'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue'}, 'workDoneToken': 'wd13', 'options': {'insertSpaces': True, 'trimFinalNewlines': False, 'trimTrailingWhitespace': True, 'insertFinalNewline': False, 'tabSize': 2}} :: <<< LSP-volar 13: None ```
predragnikolic commented 2 years ago

second try, I added the following settings to mimic all VS Code settings. but still no formatting in ST.


{
    "settings": {
        "volar.format.initialIndent": {
            "html": false,
            "javascript": false,
            "css": false
        },

        "javascript.format.enable": true,
        "javascript.format.insertSpaceAfterCommaDelimiter": true,
        "javascript.format.insertSpaceAfterConstructor": false,
        "javascript.format.insertSpaceAfterSemicolonInForStatements": true,
        "javascript.format.insertSpaceBeforeAndAfterBinaryOperators": true,
        "javascript.format.insertSpaceAfterKeywordsInControlFlowStatements": true,
        "javascript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": true,
        "javascript.format.insertSpaceBeforeFunctionParenthesis": false,
        "javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false,
        "javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false,
        "javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true,
        "javascript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces": true,
        "javascript.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false,
        "javascript.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false,
        "javascript.format.placeOpenBraceOnNewLineForFunctions": false,
        "javascript.format.placeOpenBraceOnNewLineForControlBlocks": false,
        "javascript.format.semicolons": "ignore",

        "css.format.enable": true,
        "css.format.newlineBetweenSelectors": true,
        "css.format.newlineBetweenRules": true,
        "css.format.spaceAroundSelectorSeparator": false,
        "css.format.braceStyle": "collapse",
        "css.format.preserveNewLines": true,
        "css.format.maxPreserveNewLines": null,

        "html.format.enable": true,
        "html.format.wrapLineLength": 120,
        "html.format.unformatted": "wbr",
        "html.format.contentUnformatted": "pre,code,textarea",
        "html.format.indentInnerHtml": false,
        "html.format.preserveNewLines": true,
        "html.format.maxPreserveNewLines": null,
        "html.format.indentHandlebars": false,
        "html.format.extraLiners": "head, body, /html",
        "html.format.wrapAttributes": "auto",
        "html.format.wrapAttributesIndentSize": null,
        "html.format.templating": false,
        "html.format.unformattedContentDelimiter": "",
    }
}

ST Logs:

``` :: --> LSP-volar initialize(1): {'workspaceFolders': [{'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar', 'name': 'LSP-volar'}], 'processId': 51414, 'clientInfo': {'name': 'Sublime Text LSP', 'version': '1.18.0'}, 'initializationOptions': {'languageFeatures': {'documentHighlight': True, 'inlayHints': True, 'rename': True, 'diagnostics': True, 'codeLens': {'showReferencesNotification': True}, 'implementation': True, 'schemaRequestService': False, 'references': True, 'signatureHelp': True, 'definition': True, 'workspaceSymbol': True, 'completion': {'defaultAttrNameCase': 'kebabCase', 'getDocumentSelectionRequest': False, 'getDocumentNameCasesRequest': False, 'defaultTagNameCase': 'both', 'ignoreTriggerCharacters': ''}, 'typeDefinition': True, 'documentLink': True, 'renameFileRefactoring': False, 'callHierarchy': False, 'codeAction': True, 'semanticTokens': True, 'hover': True}, 'documentFeatures': {'documentColor': True, 'linkedEditingRange': False, 'foldingRange': True, 'documentFormatting': {'defaultPrintWidth': 90}, 'documentSymbol': True, 'selectionRange': True}, 'typescript': {'serverPath': '/home/predragnikolic/.cache/sublime-text/Package Storage/LSP-volar/14.17.6/server/node_modules/typescript/lib/tsserverlibrary.js'}, 'textDocumentSync': 2}, 'capabilities': {'textDocument': {'synchronization': {'didSave': True, 'dynamicRegistration': True, 'willSave': True, 'willSaveWaitUntil': True}, 'implementation': {'linkSupport': True, 'dynamicRegistration': True}, 'publishDiagnostics': {'versionSupport': True, 'codeDescriptionSupport': True, 'relatedInformation': True, 'dataSupport': True, 'tagSupport': {'valueSet': [2, 1]}}, 'inlayHint': {'resolveSupport': {'properties': ['textEdits', 'label.command']}, 'dynamicRegistration': True}, 'rangeFormatting': {'dynamicRegistration': True}, 'declaration': {'linkSupport': True, 'dynamicRegistration': True}, 'selectionRange': {'dynamicRegistration': True}, 'semanticTokens': {'formats': ['relative'], 'tokenModifiers': ['readonly', 'deprecated', 'async', 'modification', 'abstract', 'declaration', 'defaultLibrary', 'documentation', 'static', 'definition'], 'multilineTokenSupport': True, 'augmentsSyntaxTokens': True, 'overlappingTokenSupport': False, 'dynamicRegistration': True, 'requests': {'full': {'delta': True}, 'range': True}, 'tokenTypes': ['typeParameter', 'method', 'event', 'enumMember', 'string', 'macro', 'operator', 'class', 'struct', 'parameter', 'function', 'type', 'property', 'decorator', 'enum', 'comment', 'namespace', 'variable', 'modifier', 'keyword', 'regexp', 'number', 'interface']}, 'hover': {'contentFormat': ['markdown', 'plaintext'], 'dynamicRegistration': True}, 'documentHighlight': {'dynamicRegistration': True}, 'rename': {'prepareSupport': True, 'dynamicRegistration': True}, 'documentSymbol': {'hierarchicalDocumentSymbolSupport': True, 'symbolKind': {'valueSet': [1, 26, 6, 24, 22, 15, 2, 8, 19, 10, 20, 5, 16, 21, 25, 7, 17, 11, 13, 4, 18, 23, 12, 9, 3, 14]}, 'dynamicRegistration': True, 'tagSupport': {'valueSet': [1]}}, 'codeLens': {'dynamicRegistration': True}, 'references': {'dynamicRegistration': True}, 'signatureHelp': {'contextSupport': True, 'dynamicRegistration': True, 'signatureInformation': {'documentationFormat': ['markdown', 'plaintext'], 'parameterInformation': {'labelOffsetSupport': True}, 'activeParameterSupport': True}}, 'colorProvider': {'dynamicRegistration': True}, 'completion': {'insertTextMode': 2, 'completionItemKind': {'valueSet': [17, 25, 2, 23, 16, 19, 9, 5, 13, 24, 12, 1, 3, 10, 6, 11, 14, 18, 22, 20, 15, 4, 8, 21, 7]}, 'completionItem': {'resolveSupport': {'properties': ['detail', 'documentation', 'additionalTextEdits']}, 'snippetSupport': True, 'tagSupport': {'valueSet': [1]}, 'labelDetailsSupport': True, 'insertReplaceSupport': True, 'documentationFormat': ['markdown', 'plaintext'], 'deprecatedSupport': True, 'insertTextModeSupport': {'valueSet': [2]}}, 'dynamicRegistration': True}, 'typeDefinition': {'linkSupport': True, 'dynamicRegistration': True}, 'codeAction': {'resolveSupport': {'properties': ['edit']}, 'disabledSupport': True, 'dataSupport': True, 'isPreferredSupport': True, 'dynamicRegistration': True, 'codeActionLiteralSupport': {'codeActionKind': {'valueSet': ['quickfix', 'refactor', 'refactor.extract', 'refactor.inline', 'refactor.rewrite', 'source.organizeImports']}}}, 'formatting': {'dynamicRegistration': True}, 'definition': {'linkSupport': True, 'dynamicRegistration': True}, 'documentLink': {'dynamicRegistration': True, 'tooltipSupport': True}}, 'general': {'markdown': {'parser': 'Python-Markdown', 'version': '3.2.2'}, 'regularExpressions': {'engine': 'ECMAScript'}}, 'window': {'workDoneProgress': True, 'showDocument': {'support': True}, 'showMessage': {'messageActionItem': {'additionalPropertiesSupport': True}}}, 'workspace': {'executeCommand': {}, 'applyEdit': True, 'configuration': True, 'workspaceFolders': True, 'codeLens': {'refreshSupport': True}, 'workspaceEdit': {'failureHandling': 'abort', 'documentChanges': True}, 'symbol': {'symbolKind': {'valueSet': [1, 26, 6, 24, 22, 15, 2, 8, 19, 10, 20, 5, 16, 21, 25, 7, 17, 11, 13, 4, 18, 23, 12, 9, 3, 14]}, 'dynamicRegistration': True, 'tagSupport': {'valueSet': [1]}}, 'inlayHint': {'refreshSupport': True}, 'didChangeConfiguration': {'dynamicRegistration': True}, 'semanticTokens': {'refreshSupport': True}}}, 'rootUri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar', 'rootPath': '/home/predragnikolic/.config/sublime-text/Packages/LSP-volar'} :: <<< LSP-volar 1: {'capabilities': {'typeDefinitionProvider': True, 'selectionRangeProvider': True, 'semanticTokensProvider': {'full': False, 'range': True, 'legend': {'tokenTypes': ['class', 'enum', 'interface', 'namespace', 'typeParameter', 'type', 'parameter', 'variable', 'enumMember', 'property', 'function', 'method', 'componentTag'], 'tokenModifiers': ['declaration', 'static', 'async', 'readonly', 'defaultLibrary', 'local']}}, 'foldingRangeProvider': True, 'documentFormattingProvider': True, 'renameProvider': {'prepareProvider': True}, 'documentLinkProvider': {'resolveProvider': False}, 'executeCommandProvider': {'commands': ['volar.server.convertTagNameCasing', 'volar.executtePluginCommand']}, 'documentSymbolProvider': True, 'documentHighlightProvider': True, 'implementationProvider': True, 'codeActionProvider': {'codeActionKinds': ['', 'quickfix', 'refactor', 'refactor.extract', 'refactor.inline', 'refactor.rewrite', 'source', 'source.fixAll', 'source.organizeImports'], 'resolveProvider': True}, 'definitionProvider': True, 'textDocumentSync': {'didOpen': {}, 'save': {}, 'didClose': {}, 'change': {'syncKind': 2}}, 'workspaceSymbolProvider': True, 'colorProvider': True, 'inlayHintProvider': True, 'codeLensProvider': {'resolveProvider': True}, 'hoverProvider': True, 'signatureHelpProvider': {'triggerCharacters': ['(', ',', '<'], 'retriggerCharacters': [')']}, 'documentRangeFormattingProvider': True, 'referencesProvider': True, 'documentOnTypeFormattingProvider': {'moreTriggerCharacter': ['}', '\n'], 'firstTriggerCharacter': ';'}, 'completionProvider': {'resolveProvider': True, 'triggerCharacters': ['/', '-', ':', '>', '+', '^', '*', '(', ')', '#', '.', '[', ']', '$', '@', '{', '}', '<', '"', '=', "'", '`', ' ']}}} :: -> LSP-volar initialized: {} :: -> LSP-volar workspace/didChangeConfiguration: {'settings': {'html': {'format': {'wrapLineLength': 120, 'maxPreserveNewLines': None, 'wrapAttributes': 'auto', 'enable': True, 'indentInnerHtml': False, 'templating': False, 'unformatted': 'wbr', 'extraLiners': 'head, body, /html', 'preserveNewLines': True, 'contentUnformatted': 'pre,code,textarea', 'indentHandlebars': False, 'wrapAttributesIndentSize': None, 'unformattedContentDelimiter': ''}}, 'volar': {'completion': {'preferredTagNameCase': 'auto', 'autoImportComponent': True, 'preferredAttrNameCase': 'auto-kebab'}, 'autoWrapParentheses': True, 'codeLens': {'pugTools': False, 'references': True, 'scriptSetupTools': False}, 'vueserver': {'textDocumentSync': 'incremental', 'maxOldSpaceSize': None}, 'autoCompleteRefs': False, 'format': {'initialIndent': {'html': False, 'css': False, 'javascript': False}}}, 'typescript': {'inlayHints': {'parameterTypes': {'enabled': False}, 'variableTypes': {'enabled': False}, 'propertyDeclarationTypes': {'enabled': False}, 'parameterNames': {'enabled': 'none', 'suppressWhenArgumentMatchesName': False}, 'enumMemberValues': {'enabled': False}, 'functionLikeReturnTypes': {'enabled': False}}}, 'css': {'format': {'braceStyle': 'collapse', 'preserveNewLines': True, 'maxPreserveNewLines': None, 'newlineBetweenRules': True, 'spaceAroundSelectorSeparator': False, 'enable': True, 'newlineBetweenSelectors': True}}, 'javascript': {'inlayHints': {'parameterTypes': {'enabled': False}, 'variableTypes': {'enabled': False}, 'propertyDeclarationTypes': {'enabled': False}, 'parameterNames': {'enabled': 'none', 'suppressWhenArgumentMatchesName': False}, 'enumMemberValues': {'enabled': False}, 'functionLikeReturnTypes': {'enabled': False}}, 'format': {'insertSpaceBeforeFunctionParenthesis': False, 'semicolons': 'ignore', 'insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces': False, 'insertSpaceAfterSemicolonInForStatements': True, 'insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis': False, 'insertSpaceAfterKeywordsInControlFlowStatements': True, 'enable': True, 'insertSpaceBeforeAndAfterBinaryOperators': True, 'insertSpaceAfterOpeningAndBeforeClosingEmptyBraces': True, 'insertSpaceAfterConstructor': False, 'insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets': False, 'insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces': False, 'placeOpenBraceOnNewLineForControlBlocks': False, 'insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces': True, 'placeOpenBraceOnNewLineForFunctions': False, 'insertSpaceAfterFunctionKeywordForAnonymousFunctions': True, 'insertSpaceAfterCommaDelimiter': True}}}} :: -> LSP-volar textDocument/didOpen: {'textDocument': {'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'text': '\n\n\n\n', 'languageId': 'vue', 'version': 0}} :: --> LSP-volar textDocument/documentColor(2): {'textDocument': {'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue'}} :: --> LSP-volar textDocument/inlayHint(3): {'textDocument': {'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue'}, 'range': {'end': {'character': 8, 'line': 17}, 'start': {'character': 0, 'line': 0}}} :: --> LSP-volar textDocument/documentLink(4): {'textDocument': {'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue'}} :: --> LSP-volar textDocument/codeLens(5): {'textDocument': {'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue'}} :: <-- LSP-volar client/registerCapability(0): {'registrations': [{'registerOptions': {}, 'method': 'workspace/didChangeWorkspaceFolders', 'id': '5231098c-8f34-4401-a484-07f6c424e4ff'}]} :: >>> LSP-volar 0: None :: <-- LSP-volar client/registerCapability(1): {'registrations': [{'registerOptions': {}, 'method': 'workspace/didChangeConfiguration', 'id': 'e76b63e9-fbfb-43d4-952e-3f5d1fbfc650'}]} :: >>> LSP-volar 1: None :: <-- LSP-volar workspace/configuration(2): {'items': [{'section': 'volar.diagnostics.delay'}]} :: >>> LSP-volar 2: [None] :: <-- LSP-volar workspace/configuration(3): {'items': [{'section': 'css.customData'}]} :: >>> LSP-volar 3: [None] :: <-- LSP-volar workspace/configuration(4): {'items': [{'section': 'js/ts.implicitProjectConfig'}]} :: >>> LSP-volar 4: [None] :: <-- LSP-volar workspace/configuration(5): {'items': [{'section': 'javascript.implicitProjectConfig'}]} :: >>> LSP-volar 5: [None] :: <<< LSP-volar 2: [{'color': {'alpha': 1, 'red': 1, 'green': 0, 'blue': 0}, 'range': {'end': {'character': 17, 'line': 15}, 'start': {'character': 14, 'line': 15}}}] :: --> LSP-volar textDocument/codeLens(6): {'textDocument': {'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue'}} :: <-- LSP-volar workspace/configuration(6): {'items': [{'scopeUri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'section': 'javascript'}]} :: >>> LSP-volar 6: [{'inlayHints': {'parameterTypes': {'enabled': False}, 'variableTypes': {'enabled': False}, 'propertyDeclarationTypes': {'enabled': False}, 'parameterNames': {'enabled': 'none', 'suppressWhenArgumentMatchesName': False}, 'enumMemberValues': {'enabled': False}, 'functionLikeReturnTypes': {'enabled': False}}, 'format': {'insertSpaceBeforeFunctionParenthesis': False, 'semicolons': 'ignore', 'insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces': False, 'insertSpaceAfterSemicolonInForStatements': True, 'insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis': False, 'insertSpaceAfterKeywordsInControlFlowStatements': True, 'enable': True, 'insertSpaceBeforeAndAfterBinaryOperators': True, 'insertSpaceAfterOpeningAndBeforeClosingEmptyBraces': True, 'insertSpaceAfterConstructor': False, 'insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets': False, 'insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces': False, 'placeOpenBraceOnNewLineForControlBlocks': False, 'insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces': True, 'placeOpenBraceOnNewLineForFunctions': False, 'insertSpaceAfterFunctionKeywordForAnonymousFunctions': True, 'insertSpaceAfterCommaDelimiter': True}}] :: <-- LSP-volar workspace/configuration(7): {'items': [{'section': 'html.customData'}]} :: >>> LSP-volar 7: [None] :: <-- LSP-volar workspace/configuration(8): {'items': [{'section': 'volar.codeLens.references'}]} :: >>> LSP-volar 8: [True] :: <-- LSP-volar workspace/configuration(9): {'items': [{'scopeUri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'section': 'javascript.preferences'}]} :: >>> LSP-volar 9: [None] :: <<< LSP-volar 4: [{'target': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'range': {'end': {'character': 18, 'line': 1}, 'start': {'character': 14, 'line': 1}}}] :: <-- LSP-volar workspace/configuration(10): {'items': [{'section': 'volar.codeLens.pugTools'}]} :: >>> LSP-volar 10: [False] :: <<< LSP-volar 3: [] :: <-- LSP-volar workspace/configuration(11): {'items': [{'scopeUri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.style_0.css', 'section': 'css'}]} :: >>> LSP-volar 11: [{'format': {'braceStyle': 'collapse', 'preserveNewLines': True, 'maxPreserveNewLines': None, 'newlineBetweenRules': True, 'spaceAroundSelectorSeparator': False, 'enable': True, 'newlineBetweenSelectors': True}}] :: <-- LSP-volar workspace/configuration(12): {'items': [{'section': 'volar.codeLens.scriptSetupTools'}]} :: >>> LSP-volar 12: [False] :: <- LSP-volar textDocument/publishDiagnostics: {'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'diagnostics': [], 'version': 0} :: --> LSP-volar textDocument/codeAction(7): {'textDocument': {'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue'}, 'context': {'diagnostics': []}, 'range': {'end': {'character': 16, 'line': 8}, 'start': {'character': 16, 'line': 8}}} :: <<< LSP-volar 5: [{'data': {'pluginId': 7, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'originalItem': {'data': {'vueTag': 'style', 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'position': {'character': 0, 'line': 14}}, 'range': {'end': {'character': 5, 'line': 14}, 'start': {'character': 0, 'line': 14}}}}, 'range': {'end': {'character': 5, 'line': 14}, 'start': {'character': 0, 'line': 14}}}] :: --> LSP-volar codeLens/resolve(8): {'data': {'pluginId': 7, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'originalItem': {'data': {'vueTag': 'style', 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'position': {'character': 0, 'line': 14}}, 'range': {'end': {'character': 5, 'line': 14}, 'start': {'character': 0, 'line': 14}}}}, 'range': {'end': {'character': 5, 'line': 14}, 'start': {'character': 0, 'line': 14}}} :: <<< LSP-volar 6: [{'data': {'pluginId': 7, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'originalItem': {'data': {'vueTag': 'style', 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'position': {'character': 0, 'line': 14}}, 'range': {'end': {'character': 5, 'line': 14}, 'start': {'character': 0, 'line': 14}}}}, 'range': {'end': {'character': 5, 'line': 14}, 'start': {'character': 0, 'line': 14}}}] :: --> LSP-volar codeLens/resolve(9): {'data': {'pluginId': 7, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'originalItem': {'data': {'vueTag': 'style', 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'position': {'character': 0, 'line': 14}}, 'range': {'end': {'character': 5, 'line': 14}, 'start': {'character': 0, 'line': 14}}}}, 'range': {'end': {'character': 5, 'line': 14}, 'start': {'character': 0, 'line': 14}}} :: --> LSP-volar textDocument/documentHighlight(10): {'textDocument': {'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue'}, 'position': {'character': 16, 'line': 8}} :: <- LSP-volar textDocument/publishDiagnostics: {'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'diagnostics': [], 'version': 0} :: <-- LSP-volar workspace/configuration(13): {'items': [{'scopeUri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'section': 'javascript.format'}]} :: >>> LSP-volar 13: [{'insertSpaceBeforeFunctionParenthesis': False, 'semicolons': 'ignore', 'insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces': False, 'insertSpaceAfterSemicolonInForStatements': True, 'insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis': False, 'insertSpaceAfterKeywordsInControlFlowStatements': True, 'enable': True, 'insertSpaceBeforeAndAfterBinaryOperators': True, 'insertSpaceAfterOpeningAndBeforeClosingEmptyBraces': True, 'insertSpaceAfterConstructor': False, 'insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets': False, 'insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces': False, 'placeOpenBraceOnNewLineForControlBlocks': False, 'insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces': True, 'placeOpenBraceOnNewLineForFunctions': False, 'insertSpaceAfterFunctionKeywordForAnonymousFunctions': True, 'insertSpaceAfterCommaDelimiter': True}] :: <<< LSP-volar 8: {'command': {'arguments': ['file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 7, {'arguments': ['file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', {'line': 14, 'character': 0}, [{'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'range': {'end': {'character': 5, 'line': 14}, 'start': {'character': 0, 'line': 14}}}, {'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'range': {'end': {'character': 18, 'line': 1}, 'start': {'character': 14, 'line': 1}}}]], 'title': '1 reference', 'command': 'volar.show-references'}], 'title': '1 reference', 'command': 'volar.executtePluginCommand'}, 'range': {'end': {'line': 14, 'character': 5}, 'start': {'line': 14, 'character': 0}}, 'data': {'vueTag': 'style', 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'position': {'line': 14, 'character': 0}}} :: <- LSP-volar textDocument/publishDiagnostics: {'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'diagnostics': [{'tags': [1], 'severity': 4, 'data': {'version': 0}, 'range': {'end': {'character': 5, 'line': 7}, 'start': {'character': 4, 'line': 7}}, 'source': 'ts', 'code': 6133, 'message': "'x' is declared but its value is never read."}], 'version': 0} :: <- LSP-volar textDocument/publishDiagnostics: {'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'diagnostics': [{'tags': [1], 'severity': 4, 'data': {'version': 0}, 'range': {'end': {'character': 5, 'line': 7}, 'start': {'character': 4, 'line': 7}}, 'source': 'ts', 'code': 6133, 'message': "'x' is declared but its value is never read."}], 'version': 0} :: <- LSP-volar textDocument/publishDiagnostics: {'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'diagnostics': [{'tags': [1], 'severity': 4, 'data': {'version': 0}, 'range': {'end': {'character': 5, 'line': 7}, 'start': {'character': 4, 'line': 7}}, 'source': 'ts', 'code': 6133, 'message': "'x' is declared but its value is never read."}], 'version': 0} :: <<< LSP-volar 9: {'command': {'arguments': ['file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 7, {'arguments': ['file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', {'line': 14, 'character': 0}, [{'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'range': {'end': {'character': 5, 'line': 14}, 'start': {'character': 0, 'line': 14}}}, {'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'range': {'end': {'character': 18, 'line': 1}, 'start': {'character': 14, 'line': 1}}}]], 'title': '1 reference', 'command': 'volar.show-references'}], 'title': '1 reference', 'command': 'volar.executtePluginCommand'}, 'range': {'end': {'line': 14, 'character': 5}, 'start': {'line': 14, 'character': 0}}, 'data': {'vueTag': 'style', 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'position': {'line': 14, 'character': 0}}} :: <<< LSP-volar 10: [] :: <<< LSP-volar 7: [{'kind': 'refactor.rewrite.string', 'diagnostics': [], 'disabled': {'reason': 'Can only convert string concatenation'}, 'title': 'Convert to template string', 'data': {'pluginId': 12, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'originalItem': {'kind': 'refactor.rewrite.string', 'diagnostics': [], 'disabled': {'reason': 'Can only convert string concatenation'}, 'title': 'Convert to template string', 'data': {'refactorName': 'Convert to template string', 'fileName': '/home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'range': {'end': 104, 'pos': 104}, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'actionName': 'Convert to template string', 'type': 'refactor'}}, 'sourceMap': {'embeddedDocumentUri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx'}}}, {'kind': 'refactor.rewrite.arrow.braces.remove', 'diagnostics': [], 'disabled': {'reason': 'Could not find a containing arrow function'}, 'title': 'Remove braces from arrow function', 'data': {'pluginId': 12, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'originalItem': {'kind': 'refactor.rewrite.arrow.braces.remove', 'diagnostics': [], 'disabled': {'reason': 'Could not find a containing arrow function'}, 'title': 'Remove braces from arrow function', 'data': {'refactorName': 'Add or remove braces in an arrow function', 'fileName': '/home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'range': {'end': 104, 'pos': 104}, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'actionName': 'Remove braces from arrow function', 'type': 'refactor'}}, 'sourceMap': {'embeddedDocumentUri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx'}}}, {'kind': 'refactor.rewrite.arrow.braces.add', 'diagnostics': [], 'disabled': {'reason': 'Could not find a containing arrow function'}, 'title': 'Add braces to arrow function', 'data': {'pluginId': 12, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'originalItem': {'kind': 'refactor.rewrite.arrow.braces.add', 'diagnostics': [], 'disabled': {'reason': 'Could not find a containing arrow function'}, 'title': 'Add braces to arrow function', 'data': {'refactorName': 'Add or remove braces in an arrow function', 'fileName': '/home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'range': {'end': 104, 'pos': 104}, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'actionName': 'Add braces to arrow function', 'type': 'refactor'}}, 'sourceMap': {'embeddedDocumentUri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx'}}}, {'kind': 'refactor.move.newFile', 'diagnostics': [], 'disabled': {'reason': 'Selection is not a valid statement or statements'}, 'title': 'Move to a new file', 'data': {'pluginId': 12, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'originalItem': {'kind': 'refactor.move.newFile', 'diagnostics': [], 'disabled': {'reason': 'Selection is not a valid statement or statements'}, 'title': 'Move to a new file', 'data': {'refactorName': 'Move to a new file', 'fileName': '/home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'range': {'end': 104, 'pos': 104}, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'actionName': 'Move to a new file', 'type': 'refactor'}}, 'sourceMap': {'embeddedDocumentUri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx'}}}, {'kind': 'refactor.rewrite.property.generateAccessors', 'diagnostics': [], 'disabled': {'reason': 'Could not find property for which to generate accessor'}, 'title': "Generate 'get' and 'set' accessors", 'data': {'pluginId': 12, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'originalItem': {'kind': 'refactor.rewrite.property.generateAccessors', 'diagnostics': [], 'disabled': {'reason': 'Could not find property for which to generate accessor'}, 'title': "Generate 'get' and 'set' accessors", 'data': {'refactorName': "Generate 'get' and 'set' accessors", 'fileName': '/home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'range': {'end': 104, 'pos': 104}, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'actionName': "Generate 'get' and 'set' accessors", 'type': 'refactor'}}, 'sourceMap': {'embeddedDocumentUri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx'}}}, {'kind': 'refactor.extract.interface', 'diagnostics': [], 'disabled': {'reason': 'Selection is not a valid type node'}, 'title': 'Extract to interface', 'data': {'pluginId': 12, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'originalItem': {'kind': 'refactor.extract.interface', 'diagnostics': [], 'disabled': {'reason': 'Selection is not a valid type node'}, 'title': 'Extract to interface', 'data': {'refactorName': 'Extract type', 'fileName': '/home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'range': {'end': 104, 'pos': 104}, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'actionName': 'Extract to interface', 'type': 'refactor'}}, 'sourceMap': {'embeddedDocumentUri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx'}}}, {'kind': 'refactor.extract.type', 'diagnostics': [], 'disabled': {'reason': 'Selection is not a valid type node'}, 'title': 'Extract to type alias', 'data': {'pluginId': 12, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'originalItem': {'kind': 'refactor.extract.type', 'diagnostics': [], 'disabled': {'reason': 'Selection is not a valid type node'}, 'title': 'Extract to type alias', 'data': {'refactorName': 'Extract type', 'fileName': '/home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'range': {'end': 104, 'pos': 104}, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'actionName': 'Extract to type alias', 'type': 'refactor'}}, 'sourceMap': {'embeddedDocumentUri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx'}}}, {'kind': 'refactor.extract.typedef', 'diagnostics': [], 'disabled': {'reason': 'Selection is not a valid type node'}, 'title': 'Extract to typedef', 'data': {'pluginId': 12, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'originalItem': {'kind': 'refactor.extract.typedef', 'diagnostics': [], 'disabled': {'reason': 'Selection is not a valid type node'}, 'title': 'Extract to typedef', 'data': {'refactorName': 'Extract type', 'fileName': '/home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'range': {'end': 104, 'pos': 104}, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'actionName': 'Extract to typedef', 'type': 'refactor'}}, 'sourceMap': {'embeddedDocumentUri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx'}}}, {'kind': 'refactor.extract.constant', 'diagnostics': [], 'disabled': {'reason': 'Cannot extract empty range.'}, 'title': 'Extract constant', 'data': {'pluginId': 12, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'originalItem': {'kind': 'refactor.extract.constant', 'diagnostics': [], 'disabled': {'reason': 'Cannot extract empty range.'}, 'title': 'Extract constant', 'data': {'refactorName': 'Extract Symbol', 'fileName': '/home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'range': {'end': 104, 'pos': 104}, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'actionName': 'Extract Constant', 'type': 'refactor'}}, 'sourceMap': {'embeddedDocumentUri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx'}}}, {'kind': 'refactor.extract.function', 'diagnostics': [], 'disabled': {'reason': 'Cannot extract empty range.'}, 'title': 'Extract function', 'data': {'pluginId': 12, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'originalItem': {'kind': 'refactor.extract.function', 'diagnostics': [], 'disabled': {'reason': 'Cannot extract empty range.'}, 'title': 'Extract function', 'data': {'refactorName': 'Extract Symbol', 'fileName': '/home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'range': {'end': 104, 'pos': 104}, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'actionName': 'Extract Function', 'type': 'refactor'}}, 'sourceMap': {'embeddedDocumentUri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx'}}}, {'kind': 'refactor.rewrite.import.namespace', 'diagnostics': [], 'disabled': {'reason': 'Selection is not an import declaration.'}, 'title': 'Convert named imports to namespace import', 'data': {'pluginId': 12, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'originalItem': {'kind': 'refactor.rewrite.import.namespace', 'diagnostics': [], 'disabled': {'reason': 'Selection is not an import declaration.'}, 'title': 'Convert named imports to namespace import', 'data': {'refactorName': 'Convert import', 'fileName': '/home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'range': {'end': 104, 'pos': 104}, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'actionName': 'Convert named imports to namespace import', 'type': 'refactor'}}, 'sourceMap': {'embeddedDocumentUri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx'}}}, {'kind': 'refactor.rewrite.import.default', 'diagnostics': [], 'disabled': {'reason': 'Selection is not an import declaration.'}, 'title': 'Convert named imports to default import', 'data': {'pluginId': 12, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'originalItem': {'kind': 'refactor.rewrite.import.default', 'diagnostics': [], 'disabled': {'reason': 'Selection is not an import declaration.'}, 'title': 'Convert named imports to default import', 'data': {'refactorName': 'Convert import', 'fileName': '/home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'range': {'end': 104, 'pos': 104}, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'actionName': 'Convert named imports to default import', 'type': 'refactor'}}, 'sourceMap': {'embeddedDocumentUri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx'}}}, {'kind': 'refactor.rewrite.import.named', 'diagnostics': [], 'disabled': {'reason': 'Selection is not an import declaration.'}, 'title': 'Convert namespace import to named imports', 'data': {'pluginId': 12, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'originalItem': {'kind': 'refactor.rewrite.import.named', 'diagnostics': [], 'disabled': {'reason': 'Selection is not an import declaration.'}, 'title': 'Convert namespace import to named imports', 'data': {'refactorName': 'Convert import', 'fileName': '/home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'range': {'end': 104, 'pos': 104}, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'actionName': 'Convert namespace import to named imports', 'type': 'refactor'}}, 'sourceMap': {'embeddedDocumentUri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx'}}}, {'kind': 'refactor.rewrite.export.default', 'diagnostics': [], 'disabled': {'reason': 'Could not find export statement'}, 'title': 'Convert named export to default export', 'data': {'pluginId': 12, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'originalItem': {'kind': 'refactor.rewrite.export.default', 'diagnostics': [], 'disabled': {'reason': 'Could not find export statement'}, 'title': 'Convert named export to default export', 'data': {'refactorName': 'Convert export', 'fileName': '/home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'range': {'end': 104, 'pos': 104}, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'actionName': 'Convert named export to default export', 'type': 'refactor'}}, 'sourceMap': {'embeddedDocumentUri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx'}}}, {'kind': 'refactor.rewrite.export.named', 'diagnostics': [], 'disabled': {'reason': 'Could not find export statement'}, 'title': 'Convert default export to named export', 'data': {'pluginId': 12, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue', 'originalItem': {'kind': 'refactor.rewrite.export.named', 'diagnostics': [], 'disabled': {'reason': 'Could not find export statement'}, 'title': 'Convert default export to named export', 'data': {'refactorName': 'Convert export', 'fileName': '/home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'range': {'end': 104, 'pos': 104}, 'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx', 'actionName': 'Convert default export to named export', 'type': 'refactor'}}, 'sourceMap': {'embeddedDocumentUri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue.jsx'}}}] :: --> LSP-volar textDocument/formatting(11): {'textDocument': {'uri': 'file:///home/predragnikolic/.config/sublime-text/Packages/LSP-volar/index.vue'}, 'options': {'insertFinalNewline': False, 'insertSpaces': True, 'tabSize': 2, 'trimFinalNewlines': False, 'trimTrailingWhitespace': True}, 'workDoneToken': 'wd11'} :: <-- LSP-volar workspace/configuration(14): {'items': [{'scopeUri': 'file:///untitled.vue.template.html', 'section': 'html.format'}]} :: >>> LSP-volar 14: [{'wrapLineLength': 120, 'maxPreserveNewLines': None, 'wrapAttributes': 'auto', 'enable': True, 'indentInnerHtml': False, 'templating': False, 'unformatted': 'wbr', 'extraLiners': 'head, body, /html', 'preserveNewLines': True, 'contentUnformatted': 'pre,code,textarea', 'indentHandlebars': False, 'wrapAttributesIndentSize': None, 'unformattedContentDelimiter': ''}] :: <-- LSP-volar workspace/configuration(15): {'items': [{'scopeUri': 'file:///untitled.vue.script_format.js', 'section': 'javascript.format.enable'}]} :: >>> LSP-volar 15: [True] :: <-- LSP-volar workspace/configuration(16): {'items': [{'scopeUri': 'file:///untitled.vue.script_format.js', 'section': 'javascript.format'}]} :: >>> LSP-volar 16: [{'insertSpaceBeforeFunctionParenthesis': False, 'semicolons': 'ignore', 'insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces': False, 'insertSpaceAfterSemicolonInForStatements': True, 'insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis': False, 'insertSpaceAfterKeywordsInControlFlowStatements': True, 'enable': True, 'insertSpaceBeforeAndAfterBinaryOperators': True, 'insertSpaceAfterOpeningAndBeforeClosingEmptyBraces': True, 'insertSpaceAfterConstructor': False, 'insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets': False, 'insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces': False, 'placeOpenBraceOnNewLineForControlBlocks': False, 'insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces': True, 'placeOpenBraceOnNewLineForFunctions': False, 'insertSpaceAfterFunctionKeywordForAnonymousFunctions': True, 'insertSpaceAfterCommaDelimiter': True}] :: <-- LSP-volar workspace/configuration(17): {'items': [{'scopeUri': 'file:///untitled.vue.style_0.css', 'section': 'css.format'}]} :: >>> LSP-volar 17: [{'braceStyle': 'collapse', 'preserveNewLines': True, 'maxPreserveNewLines': None, 'newlineBetweenRules': True, 'spaceAroundSelectorSeparator': False, 'enable': True, 'newlineBetweenSelectors': True}] :: <<< LSP-volar 11: None ```

'format': {'initialIndent': {'html': False, 'css': False, 'javascript': False}} is still not respected.

johnsoncodehk commented 2 years ago

Hi @predragnikolic, seems language server never send workspace/configuration request for volar.format.initialIndent after textDocument/formatting, are you sure the local @volar/vue-language-server version is v0.40.9?

predragnikolic commented 2 years ago

@johnsoncodehk thanks for the pointer! I cloned volar and built it locally, and it worked.

It turns out that the package-lock.json in this PR prevented me from using the v0.40.9.