sublimelsp / LSP-typescript

TypeScript, JavaScript support for Sublime LSP plugin

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Conflict with "A File Icon" package

istudyatuni opened this issue · comments

commented

I have installed packages (tested in safe mode):

  • LSP
  • LSP-typescript
  • A File Icon

"A File Icon" uses custom syntax scopes for icons, as per their readme:

Sublime Text uses syntax scopes for file-specific icons

so this packages creates syntax named "JavaScript (Vite)" for vite.config.js. Probably, because of this, requests to language server failed with message Request textDocument/documentHighlight failed with message: The document should be opened first: file:///tmp/test-vite/vite.config.js'

Logs

:: [19:50:18.414]  -> LSP-typescript textDocument/didOpen: {'textDocument': {'text': "import path from 'path'\n", 'version': 0, 'uri': 'file:///tmp/test-vite/vite.config.js', 'languageId': 'vite'}}
LSP-typescript: Notification handler 'textDocument/didOpen' failed with message: Cannot open document 'file:///tmp/test-vite/vite.config.js'.
:: [19:50:18.417] --> LSP-typescript textDocument/codeLens (2): {'textDocument': {'uri': 'file:///tmp/test-vite/vite.config.js'}}
LSP-typescript: Unexpected resource file:///tmp/test-vite/vite.config.js
:: [19:50:18.424] <-  LSP-typescript window/logMessage: {'message': "Notification handler 'textDocument/didOpen' failed with message: Cannot open document 'file:///tmp/test-vite/vite.config.js'.", 'type': 1}
:: [19:50:18.424] <-  LSP-typescript window/logMessage: {'message': 'Unexpected resource file:///tmp/test-vite/vite.config.js', 'type': 1}
:: [19:50:18.424] <<< LSP-typescript (2) (duration: 6ms): []
:: [19:50:31.393] --> LSP-typescript textDocument/documentHighlight (3): {'position': {'line': 0, 'character': 9}, 'textDocument': {'uri': 'file:///tmp/test-vite/vite.config.js'}}
:: [19:50:31.398] --> LSP-typescript textDocument/codeAction (4): {'textDocument': {'uri': 'file:///tmp/test-vite/vite.config.js'}, 'range': {'start': {'line': 0, 'character': 9}, 'end': {'line': 0, 'character': 9}}, 'context': {'triggerKind': 2, 'diagnostics': []}}
LSP-typescript: Unexpected resource file:///tmp/test-vite/vite.config.js
:: [19:50:31.400] <-  LSP-typescript window/logMessage: {'message': 'Unexpected resource file:///tmp/test-vite/vite.config.js', 'type': 1}
:: [19:50:31.400] <~~ LSP-typescript (3) (duration: 6ms): {'message': 'Request textDocument/documentHighlight failed with message: The document should be opened first: file:///tmp/test-vite/vite.config.js', 'code': -32603}
LSP-typescript: Unexpected resource file:///tmp/test-vite/vite.config.js
:: [19:50:31.402] <-  LSP-typescript window/logMessage: {'message': 'Unexpected resource file:///tmp/test-vite/vite.config.js', 'type': 1}
:: [19:50:31.402] <<< LSP-typescript (4) (duration: 4ms): []

I redacted $HOME

Troubleshoot info

Troubleshooting: LSP-typescript

Version

  • LSP: 1.26.0
  • Sublime Text: 4152

Server Test Run

  • exit code: 0
  • output

Server Configuration

  • command
[
  "${node_bin}", 
  "${server_path}", 
  "--stdio"
]
  • shell command
$HOME/.nvm/versions/node/v16.15.1/bin/node "$HOME/.cache/sublime-text-safe-mode/Package Storage/LSP-typescript/16.15.1/typescript-language-server/node_modules/typescript-language-server/lib/cli.mjs" --stdio
  • selector
source.js, source.jsx, source.ts, source.tsx
  • priority_selector
source.js, source.jsx, source.ts, source.tsx
  • init_options
{
  "completionDisableFilterText": true, 
  "disableAutomaticTypingAcquisition": false, 
  "locale": "en", 
  "maxTsServerMemory": 0, 
  "npmLocation": "", 
  "plugins": [], 
  "preferences": {
    "allowIncompleteCompletions": true, 
    "allowRenameOfImportPath": true, 
    "allowTextChangesInNewFiles": true, 
    "autoImportFileExcludePatterns": [], 
    "disableSuggestions": false, 
    "displayPartsForJSDoc": true, 
    "generateReturnInDocTemplate": true, 
    "importModuleSpecifierEnding": "auto", 
    "importModuleSpecifierPreference": "shortest", 
    "includeAutomaticOptionalChainCompletions": true, 
    "includeCompletionsForImportStatements": true, 
    "includeCompletionsForModuleExports": true, 
    "includeCompletionsWithClassMemberSnippets": true, 
    "includeCompletionsWithInsertText": true, 
    "includeCompletionsWithObjectLiteralMethodSnippets": true, 
    "includeCompletionsWithSnippetText": true, 
    "includePackageJsonAutoImports": "auto", 
    "interactiveInlayHints": true, 
    "jsxAttributeCompletionStyle": "auto", 
    "lazyConfiguredProjectsFromExternalProject": false, 
    "organizeImportsAccentCollation": true, 
    "organizeImportsCaseFirst": false, 
    "organizeImportsCollation": "ordinal", 
    "organizeImportsCollationLocale": "en", 
    "organizeImportsIgnoreCase": "auto", 
    "organizeImportsNumericCollation": false, 
    "providePrefixAndSuffixTextForRename": true, 
    "provideRefactorNotApplicableReason": true, 
    "quotePreference": "auto", 
    "useLabelDetailsInCompletionEntries": true
  }, 
  "tsserver": {
    "logDirectory": "", 
    "logVerbosity": "off", 
    "path": "", 
    "trace": "off", 
    "useSyntaxServer": "auto"
  }
}
  • settings
{
  "diagnostics": {
    "ignoredCodes": []
  }, 
  "implicitProjectConfiguration": {
    "checkJs": false, 
    "experimentalDecorators": false, 
    "module": "ESNext", 
    "strictFunctionTypes": true, 
    "strictNullChecks": true, 
    "target": "ES2020"
  }, 
  "javascript": {
    "format": {
      "insertSpaceAfterCommaDelimiter": true, 
      "insertSpaceAfterConstructor": false, 
      "insertSpaceAfterFunctionKeywordForAnonymousFunctions": true, 
      "insertSpaceAfterKeywordsInControlFlowStatements": true, 
      "insertSpaceAfterOpeningAndBeforeClosingEmptyBraces": false, 
      "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, 
      "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, 
      "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, 
      "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, 
      "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, 
      "insertSpaceAfterSemicolonInForStatements": true, 
      "insertSpaceAfterTypeAssertion": false, 
      "insertSpaceBeforeAndAfterBinaryOperators": true, 
      "insertSpaceBeforeFunctionParenthesis": false, 
      "insertSpaceBeforeTypeAnnotation": false, 
      "placeOpenBraceOnNewLineForControlBlocks": false, 
      "placeOpenBraceOnNewLineForFunctions": false, 
      "semicolons": "ignore", 
      "trimTrailingWhitespace": true
    }, 
    "implementationsCodeLens": {
      "enabled": false
    }, 
    "inlayHints": {
      "includeInlayEnumMemberValueHints": false, 
      "includeInlayFunctionLikeReturnTypeHints": false, 
      "includeInlayFunctionParameterTypeHints": false, 
      "includeInlayParameterNameHints": "none", 
      "includeInlayParameterNameHintsWhenArgumentMatchesName": false, 
      "includeInlayPropertyDeclarationTypeHints": false, 
      "includeInlayVariableTypeHints": false, 
      "includeInlayVariableTypeHintsWhenTypeMatchesName": false
    }, 
    "referencesCodeLens": {
      "enabled": false, 
      "showOnAllFunctions": false
    }
  }, 
  "statusText": "$version, $source", 
  "typescript": {
    "format": {
      "insertSpaceAfterCommaDelimiter": true, 
      "insertSpaceAfterConstructor": false, 
      "insertSpaceAfterFunctionKeywordForAnonymousFunctions": true, 
      "insertSpaceAfterKeywordsInControlFlowStatements": true, 
      "insertSpaceAfterOpeningAndBeforeClosingEmptyBraces": false, 
      "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, 
      "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, 
      "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, 
      "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, 
      "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, 
      "insertSpaceAfterSemicolonInForStatements": true, 
      "insertSpaceAfterTypeAssertion": false, 
      "insertSpaceBeforeAndAfterBinaryOperators": true, 
      "insertSpaceBeforeFunctionParenthesis": false, 
      "insertSpaceBeforeTypeAnnotation": false, 
      "placeOpenBraceOnNewLineForControlBlocks": false, 
      "placeOpenBraceOnNewLineForFunctions": false, 
      "semicolons": "ignore", 
      "trimTrailingWhitespace": true
    }, 
    "implementationsCodeLens": {
      "enabled": false
    }, 
    "inlayHints": {
      "includeInlayEnumMemberValueHints": false, 
      "includeInlayFunctionLikeReturnTypeHints": false, 
      "includeInlayFunctionParameterTypeHints": false, 
      "includeInlayParameterNameHints": "none", 
      "includeInlayParameterNameHintsWhenArgumentMatchesName": false, 
      "includeInlayPropertyDeclarationTypeHints": false, 
      "includeInlayVariableTypeHints": false, 
      "includeInlayVariableTypeHintsWhenTypeMatchesName": false
    }, 
    "referencesCodeLens": {
      "enabled": false, 
      "showOnAllFunctions": false
    }
  }
}
  • env
{
  "PATH": "$HOME/.nvm/versions/node/v16.15.1/bin:$HOME/.nvm/versions/node/v16.15.1/bin:$HOME/.nvm/versions/node/v16.15.1/bin:"
}

Active view

  • File name
/tmp/test-vite/vite.config.js
  • Settings
{
  "auto_complete_selector": "meta.tag, source - comment - string.quoted.double.block - string.quoted.single.block - string.unquoted.heredoc", 
  "lsp_active": true, 
  "syntax": "Packages/zzz A File Icon zzz/aliases/JavaScript (Vite).sublime-syntax"
}
  • base scope
source.js.vite

Project / Workspace

  • folders
[
  "/tmp/test-vite"
]
  • is project: False

LSP configuration

<not found>

System PATH

  • $HOME/.pyenv/shims
  • $HOME/.nvm/versions/node/v16.15.1/bin
  • $HOME/.ghcup/bin
  • $HOME/.nix-profile/bin
  • /nix/var/nix/profiles/default/bin
  • /usr/local/sbin
  • /usr/local/bin
  • /usr/bin
  • /opt/android-sdk/emulator
  • /opt/cuda/bin
  • /opt/cuda/nsight_compute
  • /opt/cuda/nsight_systems/bin
  • $HOME/.dotnet/tools
  • /var/lib/flatpak/exports/bin
  • /usr/lib/jvm/default/bin
  • /usr/bin/site_perl
  • /usr/bin/vendor_perl
  • /usr/bin/core_perl
  • /usr/lib/rustup/bin
  • $HOME/.local/bin
  • $HOME/.applications
  • $HOME/.go/bin
  • $HOME/.cargo/bin
  • $HOME/.nix-profile/bin
  • $HOME/.yarn/bin

The latest version of LSP-typescript (or rather the underlaying server) might be more strict about that. I guess the older versions might not have complained about that but then some behavior would likely not have been correct.

You can open this configuration file:

Screenshot 2023-11-10 at 20 13 40

and map source.js.vite to javascript (basing this on https://github.com/SublimeText/AFileIcon/blob/master/preferences/file_type_vite.tmPreferences).

I don't have generic solution for what "A File Icon " does though.

With latest version of LSP this should now work without custom changes to mapping overrides.