Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Goto Type Definition not work with eslint-plugin-perfectionist. #262

Open
rgant opened this issue Jan 12, 2025 · 3 comments
Open

Goto Type Definition not work with eslint-plugin-perfectionist. #262

rgant opened this issue Jan 12, 2025 · 3 comments
Labels
bug Something isn't working

Comments

@rgant
Copy link

rgant commented Jan 12, 2025

I am unable to "Goto Type Definition..." or "Goto Definition..." on eslint-plugin-perfectionist. It works for @eslint/js, globals, and typescript-eslint in eslint.config.mjs.

Minimal reproduction repo: https://github.com/rgant/tmp-eslint-perfectionist-test

Trouble Shoot Server Output

Troubleshooting: LSP-typescript

Version

  • LSP: 2.3.0
  • Sublime Text: 4189

Server Test Run

  • exit code: 0
  • output

Server Configuration

  • command
[
  "${node_bin}",
  "${server_path}",
  "--stdio"
]
  • shell command
/Users/rgant/.nvm/versions/node/v22.12.0/bin/node "/Users/rgant/Library/Caches/Sublime Text 3/Package Storage/LSP-typescript/22.12.0/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,
    "excludeLibrarySymbolsInNavTo": 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": {
    "fallbackPath": "",
    "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": "/Users/rgant/.nvm/versions/node/v22.12.0/bin:"
}

Active view

  • File name
/Users/rgant/Programming/tmp-eslint-perfectionist-test/eslint.config.mjs
  • Settings
{
  "auto_complete_selector": "meta.tag, source - comment - string.quoted.double.block - string.quoted.single.block - string.unquoted.heredoc",
  "lsp_active": true,
  "syntax": "Packages/JavaScript/JavaScript.sublime-syntax"
}
  • base scope
source.js

Project / Workspace

  • folders
[
  "/Users/rgant/Programming/tmp-eslint-perfectionist-test"
]
  • is project: False

LSP configuration

{
  "show_diagnostics_panel_on_save": 4
}

System PATH

  • /opt/homebrew/share/google-cloud-sdk/bin
  • /Users/rgant/.pyenv/shims
  • /Users/rgant/.nvm/versions/node/v22.12.0/bin
  • /opt/homebrew/bin
  • /opt/homebrew/sbin
  • /Users/rgant/bin
  • /Users/rgant/.local/bin
  • /opt/homebrew/opt/libpq/bin
  • /Users/rgant/go/bin
  • /usr/local/bin
  • /System/Cryptexes/App/usr/bin
  • /usr/bin
  • /bin
  • /usr/sbin
  • /sbin
  • /var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin
  • /var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin
  • /var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin
  • /Library/Apple/usr/bin
  • /Library/Frameworks/Mono.framework/Versions/Current/Commands
  • .

I originally found this issue in a new Angular project and opened this ticket with the plugin developers. They have been very helpful in looking into this issue, but believe it is outside of their code. I created the above brand new repo to try and replicate the bug. But I was not able to get the same error message. However the code discovery actions are not working so it feel like there is something here to diagnose. But I am uncertain how to proceed.

@rgant
Copy link
Author

rgant commented Jan 12, 2025

The error message I get with the angular project is of the form:

Cannot find module * or its corresponding type declarations. typescript(2307)
There are types at *, but this result could not be resolved under your current 'moduleResolution' setting. Consider updating to 'node16', 'nodenext', or 'bundler'.

Screenshot 2025-01-11 at 08 22 34

I do not see this error with the minimal reproduction, but I assume it is related.

@predragnikolic predragnikolic added the bug Something isn't working label Jan 12, 2025
@predragnikolic
Copy link
Member

Hello,
Looks like the https://github.com/typescript-language-server/typescript-language-server returns a empty response,
but only when doing a goto definition on this line:

import perfectionist from "eslint-plugin-perfectionist";
                                              ^ goto def here

https://github.com/rgant/tmp-eslint-perfectionist-test/blob/6b8b429ebe1eb5045e93eca632a16cb652d59914/eslint.config.mjs#L2

I have tested VS Code, and goto definition works there.
I also tested a different language server vtsls and goto definition works there also.

The issue should ideally be reported to https://github.com/typescript-language-server/typescript-language-server/issues

@rgant
Copy link
Author

rgant commented Jan 12, 2025

Thank you, I have opened a ticket there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants