orbitalquark / textadept-lsp

Language server protocol client module for Textadept.
MIT License
28 stars 9 forks source link

attempt to index a nil value (field 'call_tip_triggers') #13

Open mhwombat opened 1 year ago

mhwombat commented 1 year ago

Low priority "cosmetic" problem. Please feel free to close the issue.

I'm using the versions of textadept and textadept-lsp from the repo as of two days ago. I have also commented out line 386 in lsp/init.lua as per recent discussion.

As soon as I make a change (type one character) into a Haskell file, I get the following error:

/home/amy/.config/textadept/modules/lsp/init.lua:1144: attempt to index a nil value (field 'call_tip_triggers')

I can continue to edit the file, and everything seems to work fine. Here's the language server log.

Starting language server: haskell-language-server --lsp
RPC send: {"params":{"rootUri":"file:///home/amy/github/pandoc-columns","processId":null,"clientInfo":{"name":"textadept","version":"Textadept 12.0 alpha 2"},"capabilities":{"textDocument":{"synchronization":{"didSave":true},"documentSymbol":{"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]}},"signatureHelp":{"signatureInformation":{"parameterInformation":{"labelOffsetSupport":true},"activeParameterSupport":true,"documentationFormat":["plaintext"]}},"completion":{"completionItemKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]},"completionItem":{"preselectSupport":true,"documentationFormat":["plaintext"]}},"hover":{"contentFormat":["plaintext"]}}}},"method":"initialize","jsonrpc":"2.0","id":1}
RPC recv: {"id":1,"jsonrpc":"2.0","result":{"capabilities":{"callHierarchyProvider":true,"codeActionProvider":true,"codeLensProvider":{"resolveProvider":false,"workDoneProgress":false},"colorProvider":false,"completionProvider":{"resolveProvider":true,"triggerCharacters":["."]},"declarationProvider":false,"definitionProvider":true,"documentFormattingProvider":true,"documentHighlightProvider":true,"documentRangeFormattingProvider":true,"documentSymbolProvider":true,"executeCommandProvider":{"commands":["3076683:class:classplugin.codeaction","3076683:class:classplugin.typelens","3076683:refineImports:RefineImportLensCommand","3076683:splice:expandTHSpliceInplace","3076683:hlint:applyOne","3076683:hlint:applyAll","3076683:ghcide-extend-import-action:extendImport","3076683:importLens:ImportLensCommand","3076683:retrie:retrieCommand","3076683:ghcide-type-lenses:typesignature.add","3076683:eval:evalCommand","3076683:gadt:GADT.toGADT","3076683:moduleName:updateModuleName"]},"foldingRangeProvider":true,"hoverProvider":true,"implementationProvider":false,"referencesProvider":true,"renameProvider":true,"selectionRangeProvider":true,"semanticTokensProvider":{"legend":{"tokenModifiers":["declaration","definition","readonly","static","deprecated","abstract","async","modification","documentation","defaultLibrary"],"tokenTypes":["namespace","type","class","enum","interface","struct","typeParameter","parameter","variable","property","enumMember","event","function","method","macro","keyword","modifier","comment","string","number","regexp","operator"]}},"textDocumentSync":{"change":2,"openClose":true,"save":{}},"typeDefinitionProvider":true,"workspace":{"workspaceFolders":{"changeNotifications":true,"supported":true}},"workspaceSymbolProvider":true}}}
RPC send: {"params":{},"jsonrpc":"2.0","method":"initialized"}
RPC send: {"params":{"textDocument":{"text":"{-|\nModule      : Columns\nDescription : Pandoc filter to support columns in Markdown.\nCopyright   : (c) 2020-2023 Amy de Buitléir\nLicense     : BSD--3\nMaintainer  : amy@nualeargais.ie\nStability   : experimental\nPortability : POSIX\n\nSee <https://github.com/mhwombat/pandoc-linear-table> for information\non how to use this filter.\n-}\n\n{-# LANGUAGE OverloadedStrings #-}\nmodule Text.Pandoc.Filters.Columns\n  (\n    transform,\n    formatColumns\n  ) where\n\nimport Text.Pandoc      qualified as P\nimport Text.Pandoc.Walk (walk)\n\n\n-- | A transformation that can be used with Hakyll.\ntransform :: P.Pandoc -> P.Pandoc\ntransform = walk formatColumns\n\nformatColumns :: P.Block -> P.Block\nformatColumns (P.Div attr@(_,[\"columns\"],_) bs)\n  = P.Table attr defaultTableCaption colSpecs\n                    defaultTableHeader [body]\n                    defaultTableFooter\n  where body = blocksToTableBody bs\n        colSpecs = map (const defaultColSpec) bs\nformatColumns b = b\n\nblocksToTableBody :: [P.Block] -> P.TableBody\nblocksToTableBody bs = P.TableBody P.nullAttr (P.RowHeadColumns 0) [] [row]\n  where row = blocksToTableRow bs\n\nblocksToTableRow :: [P.Block] -> P.Row\nblocksToTableRow = P.Row P.nullAttr . map blockToCell\n\nblockToCell :: P.Block -> P.Cell\nblockToCell b = P.Cell P.nullAttr P.AlignDefault (P.RowSpan 1) (P.ColSpan 1) [b]\n\ndefaultColSpec :: P.ColSpec\ndefaultColSpec = (P.AlignDefault, P.ColWidthDefault)\n\ndefaultTableCaption :: P.Caption\ndefaultTableCaption = P.Caption Nothing []\n\ndefaultTableHeader :: P.TableHead\ndefaultTableHeader = P.TableHead P.nullAttr []\n\ndefaultTableFooter :: P.TableFoot\ndefaultTableFooter = P.TableFoot P.nullAttr []\n","version":0,"languageId":"haskell","uri":"file:///home/amy/github/pandoc-columns/src/Text/Pandoc/Filters/Columns.hs"}},"jsonrpc":"2.0","method":"textDocument/didOpen"}
RPC recv: {"jsonrpc":"2.0","method":"window/logMessage","params":{"message":"haskell-language-server version: 1.9.1.0 (GHC: 9.2.7) (PATH: /nix/store/9p9x12f3nf6pd30dvyzr164hwhpzq73h-haskell-language-server-1.9.1.0/bin/.haskell-language-server-9.2.7-unwrapped)","type":3}}
INFO: haskell-language-server version: 1.9.1.0 (GHC: 9.2.7) (PATH: /nix/store/9p9x12f3nf6pd30dvyzr164hwhpzq73h-haskell-language-server-1.9.1.0/bin/.haskell-language-server-9.2.7-unwrapped)
RPC recv: {"jsonrpc":"2.0","method":"window/logMessage","params":{"message":"Directory: /home/amy/github/pandoc-columns","type":3}}
INFO: Directory: /home/amy/github/pandoc-columns
RPC recv: {"jsonrpc":"2.0","method":"window/logMessage","params":{"message":"Starting (haskell-language-server) LSP server...\n  GhcideArguments {argsCommand = LSP, argsCwd = Nothing, argsShakeProfiling = Nothing, argsTesting = False, argsExamplePlugin = False, argsDebugOn = False, argsLogFile = Nothing, argsThreads = 0, argsProjectGhcVersion = False}\n  PluginIds: [ pragmas\n             , LSPRecorderCallback\n             , rename\n             , ghcide-completions\n             , class\n             , refineImports\n             , splice\n             , cabal\n             , changeTypeSignature\n             , qualifyImportedNames\n             , alternateNumberFormat\n             , hlint\n             , cabalfmt\n             , explicit-fields\n             , ghcide-code-actions-fill-holes\n             , floskell\n             , ghcide-extend-import-action\n             , codeRange\n             , importLens\n             , retrie\n             , ghcide-type-lenses\n             , ghcide-code-actions-imports-exports\n             , ghcide-hover-and-symbols\n             , eval\n             , gadt\n             , fourmolu\n             , callHierarchy\n             , stylish-haskell\n             , ghcide-code-actions-type-signatures\n             , ghcide-code-actions-bindings\n             , moduleName\n             , ormolu\n             , ghcide-core\n             , explicit-fixity ]","type":3}}
INFO: Starting (haskell-language-server) LSP server...
  GhcideArguments {argsCommand = LSP, argsCwd = Nothing, argsShakeProfiling = Nothing, argsTesting = False, argsExamplePlugin = False, argsDebugOn = False, argsLogFile = Nothing, argsThreads = 0, argsProjectGhcVersion = False}
  PluginIds: [ pragmas
             , LSPRecorderCallback
             , rename
             , ghcide-completions
             , class
             , refineImports
             , splice
             , cabal
             , changeTypeSignature
             , qualifyImportedNames
             , alternateNumberFormat
             , hlint
             , cabalfmt
             , explicit-fields
             , ghcide-code-actions-fill-holes
             , floskell
             , ghcide-extend-import-action
             , codeRange
             , importLens
             , retrie
             , ghcide-type-lenses
             , ghcide-code-actions-imports-exports
             , ghcide-hover-and-symbols
             , eval
             , gadt
             , fourmolu
             , callHierarchy
             , stylish-haskell
             , ghcide-code-actions-type-signatures
             , ghcide-code-actions-bindings
             , moduleName
             , ormolu
             , ghcide-core
             , explicit-fixity ]
RPC recv: {"jsonrpc":"2.0","method":"window/logMessage","params":{"message":"Logging heap statistics every 60.00s","type":3}}
INFO: Logging heap statistics every 60.00s
RPC recv: {"jsonrpc":"2.0","method":"window/logMessage","params":{"message":"Starting LSP server...\n  If you are seeing this in a terminal, you probably should have run WITHOUT the --lsp option!\n  PluginIds: [ pragmas\n             , LSPRecorderCallback\n             , rename\n             , ghcide-completions\n             , class\n             , refineImports\n             , splice\n             , cabal\n             , changeTypeSignature\n             , qualifyImportedNames\n             , alternateNumberFormat\n             , hlint\n             , cabalfmt\n             , explicit-fields\n             , ghcide-code-actions-fill-holes\n             , floskell\n             , ghcide-extend-import-action\n             , codeRange\n             , importLens\n             , retrie\n             , ghcide-type-lenses\n             , ghcide-code-actions-imports-exports\n             , ghcide-hover-and-symbols\n             , eval\n             , gadt\n             , fourmolu\n             , callHierarchy\n             , stylish-haskell\n             , ghcide-code-actions-type-signatures\n             , ghcide-code-actions-bindings\n             , moduleName\n             , ormolu\n             , ghcide-core\n             , explicit-fixity ]","type":3}}
INFO: Starting LSP server...
  If you are seeing this in a terminal, you probably should have run WITHOUT the --lsp option!
  PluginIds: [ pragmas
             , LSPRecorderCallback
             , rename
             , ghcide-completions
             , class
             , refineImports
             , splice
             , cabal
             , changeTypeSignature
             , qualifyImportedNames
             , alternateNumberFormat
             , hlint
             , cabalfmt
             , explicit-fields
             , ghcide-code-actions-fill-holes
             , floskell
             , ghcide-extend-import-action
             , codeRange
             , importLens
             , retrie
             , ghcide-type-lenses
             , ghcide-code-actions-imports-exports
             , ghcide-hover-and-symbols
             , eval
             , gadt
             , fourmolu
             , callHierarchy
             , stylish-haskell
             , ghcide-code-actions-type-signatures
             , ghcide-code-actions-bindings
             , moduleName
             , ormolu
             , ghcide-core
             , explicit-fixity ]
RPC recv: {"jsonrpc":"2.0","method":"window/logMessage","params":{"message":"Starting server","type":3}}
INFO: Starting server
RPC recv: {"jsonrpc":"2.0","method":"window/logMessage","params":{"message":"Started LSP server in 0.00s","type":3}}
INFO: Started LSP server in 0.00s
RPC recv: {"jsonrpc":"2.0","method":"window/logMessage","params":{"message":"Registering IDE configuration: IdeConfiguration {workspaceFolders = fromList [NormalizedUri 4259414404448018621 \"file:///home/amy/github/pandoc-columns\"], clientSettings = hashed Nothing}","type":3}}
INFO: Registering IDE configuration: IdeConfiguration {workspaceFolders = fromList [NormalizedUri 4259414404448018621 "file:///home/amy/github/pandoc-columns"], clientSettings = hashed Nothing}
2023-03-18T16:42:37.489953Z | Info | No log file specified; using stderr.
2023-03-18T16:42:37.490378Z | Info | haskell-language-server version: 1.9.1.0 (GHC: 9.2.7) (PATH: /nix/store/9p9x12f3nf6pd30dvyzr164hwhpzq73h-haskell-language-server-1.9.1.0/bin/.haskell-language-server-9.2.7-unwrapped)
2023-03-18T16:42:37.490745Z | Info | Directory: /home/amy/github/pandoc-columns
2023-03-18T16:42:37.490886Z | Info | Starting (haskell-language-server) LSP server...
  GhcideArguments {argsCommand = LSP, argsCwd = Nothing, argsShakeProfiling = Nothing, argsTesting = False, argsExamplePlugin = False, argsDebugOn = False, argsLogFile = Nothing, argsThreads = 0, argsProjectGhcVersion = False}
  PluginIds: [ pragmas
             , LSPRecorderCallback
             , rename
             , ghcide-completions
             , class
             , refineImports
             , splice
             , cabal
             , changeTypeSignature
             , qualifyImportedNames
             , alternateNumberFormat
             , hlint
             , cabalfmt
             , explicit-fields
             , ghcide-code-actions-fill-holes
             , floskell
             , ghcide-extend-import-action
             , codeRange
             , importLens
             , retrie
             , ghcide-type-lenses
             , ghcide-code-actions-imports-exports
             , ghcide-hover-and-symbols
             , eval
             , gadt
             , fourmolu
             , callHierarchy
             , stylish-haskell
             , ghcide-code-actions-type-signatures
             , ghcide-code-actions-bindings
             , moduleName
             , ormolu
             , ghcide-core
             , explicit-fixity ]
2023-03-18T16:42:37.492750Z | Info | Logging heap statistics every 60.00s
 2023-03-18T16:42:37.529608Z | Info | Starting LSP server...
  If you are seeing this in a terminal, you probably should have run WITHOUT the --lsp option!
  PluginIds: [ pragmas
             , LSPRecorderCallback
             , rename
             , ghcide-completions
             , class
             , refineImports
             , splice
             , cabal
             , changeTypeSignature
             , qualifyImportedNames
             , alternateNumberFormat
             , hlint
             , cabalfmt
             , explicit-fields
             , ghcide-code-actions-fill-holes
             , floskell
             , ghcide-extend-import-action
             , codeRange
             , importLens
             , retrie
             , ghcide-type-lenses
             , ghcide-code-actions-imports-exports
             , ghcide-hover-and-symbols
             , eval
             , gadt
             , fourmolu
             , callHierarchy
             , stylish-haskell
             , ghcide-code-actions-type-signatures
             , ghcide-code-actions-bindings
             , moduleName
             , ormolu
             , ghcide-core
             , explicit-fixity ]
2023-03-18T16:42:37.529937Z | Info | Starting server
2023-03-18T16:42:37.530977Z | Info | Started LSP server in 0.00s
2023-03-18T16:42:37.570135Z | Info | Registering IDE configuration: IdeConfiguration {workspaceFolders = fromList [NormalizedUri 4259414404448018621 "file:///home/amy/github/pandoc-columns"], clientSettings = hashed Nothing}
2023-03-18T16:42:37.594084Z | Info | Cradle path: src/Text/Pandoc/Filters/Columns.hs

RPC recv: {"jsonrpc":"2.0","method":"window/logMessage","params":{"message":"Cradle path: src/Text/Pandoc/Filters/Columns.hs","type":3}}
INFO: Cradle path: src/Text/Pandoc/Filters/Columns.hs
2023-03-18T16:42:37.594352Z | Warning | No [cradle](https://github.com/mpickering/hie-bios#hie-bios) found for src/Text/Pandoc/Filters/Columns.hs.
Proceeding with [implicit cradle](https://hackage.haskell.org/package/implicit-hie).
You should ignore this message, unless you see a 'Multi Cradle: No prefixes matched' error.

RPC recv: {"jsonrpc":"2.0","method":"window/logMessage","params":{"message":"No [cradle](https://github.com/mpickering/hie-bios#hie-bios) found for src/Text/Pandoc/Filters/Columns.hs.\nProceeding with [implicit cradle](https://hackage.haskell.org/package/implicit-hie).\nYou should ignore this message, unless you see a 'Multi Cradle: No prefixes matched' error.","type":2}}
WARN: No [cradle](https://github.com/mpickering/hie-bios#hie-bios) found for src/Text/Pandoc/Filters/Columns.hs.
Proceeding with [implicit cradle](https://hackage.haskell.org/package/implicit-hie).
You should ignore this message, unless you see a 'Multi Cradle: No prefixes matched' error.
2023-03-18T16:42:37.667155Z | Info | Interface files cache directory: /home/amy/.cache/ghcide/main-1a596a151463f2c53ee4feb14ecd276a1ccebfda

2023-03-18T16:42:37.667483Z | Info | Making new HscEnv. In-place unit ids: [main]

RPC recv: {"jsonrpc":"2.0","method":"window/logMessage","params":{"message":"Interface files cache directory: /home/amy/.cache/ghcide/main-1a596a151463f2c53ee4feb14ecd276a1ccebfda","type":3}}
INFO: Interface files cache directory: /home/amy/.cache/ghcide/main-1a596a151463f2c53ee4feb14ecd276a1ccebfda
RPC recv: {"jsonrpc":"2.0","method":"window/logMessage","params":{"message":"Making new HscEnv. In-place unit ids: [main]","type":3}}
INFO: Making new HscEnv. In-place unit ids: [main]
RPC recv: {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[{"message":"Could not find module ‘Text.Pandoc’\nPerhaps you meant Text.Parsec (from parsec-3.1.15.0)","range":{"end":{"character":18,"line":20},"start":{"character":7,"line":20}},"severity":1,"source":"not found"},{"message":"Could not find module ‘Text.Pandoc.Walk’\nIt is not a module in the current program, or in any known package.","range":{"end":{"character":23,"line":21},"start":{"character":7,"line":21}},"severity":1,"source":"not found"}],"uri":"file:///home/amy/github/pandoc-columns/src/Text/Pandoc/Filters/Columns.hs","version":0}}
RPC send: {"params":{"textDocument":{"version":1679157801,"uri":"file:///home/amy/github/pandoc-columns/src/Text/Pandoc/Filters/Columns.hs"},"contentChanges":[{"text":"{-|\nModule      : Columns\nDescription : Pandoc filter to support columns in Markdown.\nCopyright   : (c) 2020-2023 Amy de Buitléir\nLicense     : BSD--3\nMaintainer  : amy@nualeargais.ie\nStability   : experimental\nPortability : POSIX\n\nSee <https://github.com/mhwombat/pandoc-linear-table> for information\non how to use this filter.\n-}\n\n{-# LANGUAGE OverloadedStrings #-}\n module Text.Pandoc.Filters.Columns\n  (\n    transform,\n    formatColumns\n  ) where\n\nimport Text.Pandoc      qualified as P\nimport Text.Pandoc.Walk (walk)\n\n\n-- | A transformation that can be used with Hakyll.\ntransform :: P.Pandoc -> P.Pandoc\ntransform = walk formatColumns\n\nformatColumns :: P.Block -> P.Block\nformatColumns (P.Div attr@(_,[\"columns\"],_) bs)\n  = P.Table attr defaultTableCaption colSpecs\n                    defaultTableHeader [body]\n                    defaultTableFooter\n  where body = blocksToTableBody bs\n        colSpecs = map (const defaultColSpec) bs\nformatColumns b = b\n\nblocksToTableBody :: [P.Block] -> P.TableBody\nblocksToTableBody bs = P.TableBody P.nullAttr (P.RowHeadColumns 0) [] [row]\n  where row = blocksToTableRow bs\n\nblocksToTableRow :: [P.Block] -> P.Row\nblocksToTableRow = P.Row P.nullAttr . map blockToCell\n\nblockToCell :: P.Block -> P.Cell\nblockToCell b = P.Cell P.nullAttr P.AlignDefault (P.RowSpan 1) (P.ColSpan 1) [b]\n\ndefaultColSpec :: P.ColSpec\ndefaultColSpec = (P.AlignDefault, P.ColWidthDefault)\n\ndefaultTableCaption :: P.Caption\ndefaultTableCaption = P.Caption Nothing []\n\ndefaultTableHeader :: P.TableHead\ndefaultTableHeader = P.TableHead P.nullAttr []\n\ndefaultTableFooter :: P.TableFoot\ndefaultTableFooter = P.TableFoot P.nullAttr []\n"}]},"jsonrpc":"2.0","method":"textDocument/didChange"}
2023-03-18T16:43:37.509218Z | Info | Live bytes: 0.00MB Heap size: 0.00MB

RPC recv: {"jsonrpc":"2.0","method":"window/logMessage","params":{"message":"Live bytes: 0.00MB Heap size: 0.00MB","type":3}}
INFO: Live bytes: 0.00MB Heap size: 0.00MB
RPC send: {"params":{"textDocument":{"version":1679157850,"uri":"file:///home/amy/github/pandoc-columns/src/Text/Pandoc/Filters/Columns.hs"},"contentChanges":[{"text":"{-|\nModule      : Columns\nDescription : Pandoc filter to support columns in Markdown.\nCopyright   : (c) 2020-2023 Amy de Buitléir\nLicense     : BSD--3\nMaintainer  : amy@nualeargais.ie\nStability   : experimental\nPortability : POSIX\n\nSee <https://github.com/mhwombat/pandoc-linear-table> for information\non how to use this filter.\n-}\n\n{-# LANGUAGE OverloadedStrings #-}\n module Text.Pandoc.Filters.Columns\n  (\n    transform,\n    formatColumns\n  ) where\n\nimport Text.Pandoc      qualified as P\nimport Text.Pandoc.Walk (walk)\n\n\n-- | A transformation that can be used with Hakyll.\ntransform :: P.Pandoc -> P.Pandoc\ntransform = walk formatColumns\n\nformatColumns :: P.Block -> P.Block\nformatColumns (P.Div attr@(_,[\"columns\"],_) bs)\n  = P.Table attr defaultTableCaption colSpecs\n                    defaultTableHeader [body]\n                    defaultTableFooter\n  where body = blocksToTableBody bs\n        colSpecs = map (const defaultColSpec) bs\nformatColumns b = b\n\nblocksToTableBody :: [P.Block] -> P.TableBody\nblocksToTableBody bs = P.TableBody P.nullAttr (P.RowHeadColumns 0) [] [row]\n  where row = blocksToTableRow bs\n\nblocksToTableRow :: [P.Block] -> P.Row\nblocksToTableRow = P.Row P.nullAttr . map blockToCell\n\nblockToCell :: P.Block -> P.Cell\nblockToCell b = P.Cell P.nullAttr P.AlignDefault (P.RowSpan 1) (P.ColSpan 1) [b]\n\ndefaultColSpec :: P.ColSpec\ndefaultColSpec = (P.AlignDefault, P.ColWidthDefault)\n\ndefaultTableCaption :: P.Caption\ndefaultTableCaption = P.Caption Nothing []\n\ndefaultTableHeader :: P.TableHead\ndefaultTableHeader = P.TableHead P.nullAttr []\n\ndefaultTableFooter :: P.TableFoot\ndefaultTableFooter = P.TableFoot P.nullAttr []\n"}]},"jsonrpc":"2.0","method":"textDocument/didChange"}
orbitalquark commented 1 year ago

That's a legitimate error, so thanks for the report. It should be fixed via https://github.com/orbitalquark/textadept-lsp/commit/bb042d651c48a4825c1e4422779643ea04c1e1c1.