kakoune-lsp / kakoune-lsp

Kakoune Language Server Protocol Client

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Lexical LS does not load.

zetashift opened this issue · comments

Hi! I'm not entirely sure if it's Lexical or kakoune-lsp doing the funky stuff here.

The problem

lexical gets loaded by kakoune-lsp but it doesn't actually do anything. E.g. go-to-definition, formatting never do anything actionable(while in other editors they do).

Setup

In my kak-lsp.toml

[language_server.elixirls]
filetypes = ["elixir", "heex"]
roots = ["mix.exs", ".git"]
command = "lexical"

Reproduction

I'm running with verbose logging, on initialization it spits out a lot of logs, and I'm unsure where to start dissecting it.

Initialization logging seems to stop after:
lsp-handle-progress 707 'Indexing source code' false '' 100 true, module: kak_lsp::editor_transport:95

kak-lsp.log ``` module: kak_lsp::editor_transport:138 May 01 17:29:55.130 DEBG Searching for vars starting with KAK_LSP_PROJECT_ROOT_ELIXIR, module: kak_lsp::project_root:60 May 01 17:29:55.130 INFO Found project root "/tmp/repro01" because it contains "mix.exs", module: kak_lsp::project_root:43 May 01 17:29:55.130 DEBG Routing editor request to Route { session: "730", server_name: "elixirls", root: "/tmp/repro01" }, module: kak_lsp::session:122 May 01 17:29:55.130 DEBG Language servers elixirls are still not initialized, parking request, module: kak_lsp::controller:195 May 01 17:29:55.132 DEBG From editor: session = "730" buffile = "/tmp/repro01/lib/repro01_web.ex" filetype = "elixir" version = 1 method = "textDocument/inlayHint" hook = true [params] buf_line_count = 113 , module: kak_lsp::editor_transport:138 May 01 17:29:55.132 DEBG Searching for vars starting with KAK_LSP_PROJECT_ROOT_ELIXIR, module: kak_lsp::project_root:60 May 01 17:29:55.132 INFO Found project root "/tmp/repro01" because it contains "mix.exs", module: kak_lsp::project_root:43 May 01 17:29:55.132 DEBG Routing editor request to Route { session: "730", server_name: "elixirls", root: "/tmp/repro01" }, module: kak_lsp::session:122 May 01 17:29:55.132 DEBG Language servers elixirls are still not initialized, parking request, module: kak_lsp::controller:195 May 01 17:29:56.634 DEBG From server elixirls: {"id":0,"jsonrpc":"2.0","result":{"capabilities":{"codeActionProvider":{"codeActionKinds":["quickfix"]},"workspaceSymbolProvider":true,"executeCommandProvider":{"commands":["Reindex"]},"documentFormattingProvider":true,"textDocumentSync":{"change":2,"openClose":true,"save":true},"documentSymbolProvider":true,"completionProvider":{"triggerCharacters":[".","@","&","%","^",":","!","-","~"]},"referencesProvider":true,"definitionProvider":true,"codeLensProvider":{},"hoverProvider":true},"serverInfo":{"name":"Lexical","version":"0.0.1"}}}, module: kak_lsp::language_server_transport:169 May 01 17:29:56.634 DEBG To server elixirls: {"jsonrpc":"2.0","method":"initialized","params":{}}, module: kak_lsp::language_server_transport:199 May 01 17:29:56.634 DEBG lsp_config: , module: kak_lsp::settings:67 May 01 17:29:56.634 DEBG To server elixirls: {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"languageId":"elixir","text":"defmodule Repro01Web do\n @moduledoc \"\"\"\n The entrypoint for defining your web interface, such\n as controllers, components, channels, and so on.\n\n This can be used in your application as:\n\n use Repro01Web, :controller\n use Repro01Web, :html\n\n The definitions below will be executed for every controller,\n component, etc, so keep them short and clean, focused\n on imports, uses and aliases.\n\n Do NOT define functions inside the quoted expressions\n below. Instead, define additional modules and import\n those modules here.\n \"\"\"\n\n def static_paths, do: ~w(assets fonts images favicon.ico robots.txt)\n\n def router do\n quote do\n use Phoenix.Router, helpers: false\n\n # Import common connection and controller functions to use in pipelines\n import Plug.Conn\n import Phoenix.Controller\n import Phoenix.LiveView.Router\n end\n end\n\n def channel do\n quote do\n use Phoenix.Channel\n end\n end\n\n def controller do\n quote do\n use Phoenix.Controller,\n formats: [:html, :json],\n layouts: [html: Repro01Web.Layouts]\n\n import Plug.Conn\n import Repro01Web.Gettext\n\n unquote(verified_routes())\n end\n end\n\n def live_view do\n quote do\n use Phoenix.LiveView,\n layout: {Repro01Web.Layouts, :app}\n\n unquote(html_helpers())\n end\n end\n\n def live_component do\n quote do\n use Phoenix.LiveComponent\n\n unquote(html_helpers())\n end\n end\n\n def html do\n quote do\n use Phoenix.Component\n\n # Import convenience functions from controllers\n import Phoenix.Controller,\n only: [get_csrf_token: 0, view_module: 1, view_template: 1]\n\n # Include general helpers for rendering HTML\n unquote(html_helpers())\n end\n end\n\n defp html_helpers do\n quote do\n # HTML escaping functionality\n import Phoenix.HTML\n # Core UI components and translation\n import Repro01Web.CoreComponents\n import Repro01Web.Gettext\n\n # Shortcut for generating JS commands\n alias Phoenix.LiveView.JS\n\n # Routes generation with the ~p sigil\n unquote(verified_routes())\n end\n end\n\n def verified_routes do\n quote do\n use Phoenix.VerifiedRoutes,\n endpoint: Repro01Web.Endpoint,\n router: Repro01Web.Router,\n statics: Repro01Web.static_paths()\n end\n end\n\n @doc \"\"\"\n When used, dispatch to the appropriate controller/view/etc.\n \"\"\"\n defmacro __using__(which) when is_atom(which) do\n apply(__MODULE__, which, [])\n end\nend\n","uri":"file:///tmp/repro01/lib/repro01_web.ex","version":1}}}, module: kak_lsp::language_server_transport:199 May 01 17:29:56.634 DEBG To server elixirls: {"jsonrpc":"2.0","method":"textDocument/codeLens","params":{"textDocument":{"uri":"file:///tmp/repro01/lib/repro01_web.ex"}},"id":1}, module: kak_lsp::language_server_transport:199 May 01 17:29:56.634 DEBG To server elixirls: {"jsonrpc":"2.0","method":"workspace/didChangeConfiguration","params":{"settings":null}}, module: kak_lsp::language_server_transport:199 May 01 17:29:56.634 DEBG To server elixirls: {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"languageId":"elixir","text":"defmodule Repro01Web do\n @moduledoc \"\"\"\n The entrypoint for defining your web interface, such\n as controllers, components, channels, and so on.\n\n This can be used in your application as:\n\n use Repro01Web, :controller\n use Repro01Web, :html\n\n The definitions below will be executed for every controller,\n component, etc, so keep them short and clean, focused\n on imports, uses and aliases.\n\n Do NOT define functions inside the quoted expressions\n below. Instead, define additional modules and import\n those modules here.\n \"\"\"\n\n def static_paths, do: ~w(assets fonts images favicon.ico robots.txt)\n\n def router do\n quote do\n use Phoenix.Router, helpers: false\n\n # Import common connection and controller functions to use in pipelines\n import Plug.Conn\n import Phoenix.Controller\n import Phoenix.LiveView.Router\n end\n end\n\n def channel do\n quote do\n use Phoenix.Channel\n end\n end\n\n def controller do\n quote do\n use Phoenix.Controller,\n formats: [:html, :json],\n layouts: [html: Repro01Web.Layouts]\n\n import Plug.Conn\n import Repro01Web.Gettext\n\n unquote(verified_routes())\n end\n end\n\n def live_view do\n quote do\n use Phoenix.LiveView,\n layout: {Repro01Web.Layouts, :app}\n\n unquote(html_helpers())\n end\n end\n\n def live_component do\n quote do\n use Phoenix.LiveComponent\n\n unquote(html_helpers())\n end\n end\n\n def html do\n quote do\n use Phoenix.Component\n\n # Import convenience functions from controllers\n import Phoenix.Controller,\n only: [get_csrf_token: 0, view_module: 1, view_template: 1]\n\n # Include general helpers for rendering HTML\n unquote(html_helpers())\n end\n end\n\n defp html_helpers do\n quote do\n # HTML escaping functionality\n import Phoenix.HTML\n # Core UI components and translation\n import Repro01Web.CoreComponents\n import Repro01Web.Gettext\n\n # Shortcut for generating JS commands\n alias Phoenix.LiveView.JS\n\n # Routes generation with the ~p sigil\n unquote(verified_routes())\n end\n end\n\n def verified_routes do\n quote do\n use Phoenix.VerifiedRoutes,\n endpoint: Repro01Web.Endpoint,\n router: Repro01Web.Router,\n statics: Repro01Web.static_paths()\n end\n end\n\n @doc \"\"\"\n When used, dispatch to the appropriate controller/view/etc.\n \"\"\"\n defmacro __using__(which) when is_atom(which) do\n apply(__MODULE__, which, [])\n end\nend\n","uri":"file:///tmp/repro01/lib/repro01_web.ex","version":1}}}, module: kak_lsp::language_server_transport:199 May 01 17:29:56.634 DEBG To server elixirls: {"jsonrpc":"2.0","method":"textDocument/codeLens","params":{"textDocument":{"uri":"file:///tmp/repro01/lib/repro01_web.ex"}},"id":2}, module: kak_lsp::language_server_transport:199 May 01 17:29:56.634 DEBG To server elixirls: {"jsonrpc":"2.0","method":"textDocument/codeAction","params":{"context":{"diagnostics":[],"triggerKind":2},"range":{"end":{"character":0,"line":0},"start":{"character":0,"line":0}},"textDocument":{"uri":"file:///tmp/repro01/lib/repro01_web.ex"}},"id":3}, module: kak_lsp::language_server_transport:199 May 01 17:29:56.634 DEBG Canceling request to elixirls server Num(5) (textDocument/codeAction), module: kak_lsp::context:253 May 01 17:29:56.634 DEBG Canceling request to elixirls server Num(6) (textDocument/documentSymbol), module: kak_lsp::context:253 May 01 17:29:56.635 DEBG Canceling request to elixirls server Num(7) (textDocument/codeAction), module: kak_lsp::context:253 May 01 17:29:56.635 DEBG Canceling request to elixirls server Num(8) (textDocument/documentSymbol), module: kak_lsp::context:253 May 01 17:29:56.635 DEBG To server elixirls: {"jsonrpc":"2.0","method":"textDocument/documentSymbol","params":{"textDocument":{"uri":"file:///tmp/repro01/lib/repro01_web.ex"}},"id":4}, module: kak_lsp::language_server_transport:199 May 01 17:29:56.635 DEBG To server elixirls: {"jsonrpc":"2.0","method":"textDocument/codeAction","params":{"context":{"diagnostics":[],"triggerKind":2},"range":{"end":{"character":0,"line":1},"start":{"character":0,"line":1}},"textDocument":{"uri":"file:///tmp/repro01/lib/repro01_web.ex"}},"id":5}, module: kak_lsp::language_server_transport:199 May 01 17:29:56.635 DEBG To server elixirls: {"jsonrpc":"2.0","method":"textDocument/documentSymbol","params":{"textDocument":{"uri":"file:///tmp/repro01/lib/repro01_web.ex"}},"id":6}, module: kak_lsp::language_server_transport:199 May 01 17:29:56.635 DEBG To server elixirls: {"jsonrpc":"2.0","method":"$/cancelRequest","params":{"id":5}}, module: kak_lsp::language_server_transport:199 May 01 17:29:56.635 DEBG To server elixirls: {"jsonrpc":"2.0","method":"textDocument/codeAction","params":{"context":{"diagnostics":[],"triggerKind":2},"range":{"end":{"character":0,"line":2},"start":{"character":0,"line":2}},"textDocument":{"uri":"file:///tmp/repro01/lib/repro01_web.ex"}},"id":7}, module: kak_lsp::language_server_transport:199 May 01 17:29:56.635 DEBG To server elixirls: {"jsonrpc":"2.0","method":"$/cancelRequest","params":{"id":6}}, module: kak_lsp::language_server_transport:199 May 01 17:29:56.635 DEBG To server elixirls: {"jsonrpc":"2.0","method":"textDocument/documentSymbol","params":{"textDocument":{"uri":"file:///tmp/repro01/lib/repro01_web.ex"}},"id":8}, module: kak_lsp::language_server_transport:199 May 01 17:29:56.635 DEBG To server elixirls: {"jsonrpc":"2.0","method":"$/cancelRequest","params":{"id":7}}, module: kak_lsp::language_server_transport:199 May 01 17:29:56.635 DEBG To server elixirls: {"jsonrpc":"2.0","method":"textDocument/codeAction","params":{"context":{"diagnostics":[],"triggerKind":2},"range":{"end":{"character":0,"line":3},"start":{"character":0,"line":3}},"textDocument":{"uri":"file:///tmp/repro01/lib/repro01_web.ex"}},"id":9}, module: kak_lsp::language_server_transport:199 May 01 17:29:56.635 DEBG To server elixirls: {"jsonrpc":"2.0","method":"$/cancelRequest","params":{"id":8}}, module: kak_lsp::language_server_transport:199 May 01 17:29:56.635 DEBG From server elixirls: {"id":"1","jsonrpc":"2.0","method":"client/registerCapability","params":{"registrations":[{"id":"-42","method":"workspace/didChangeWatchedFiles","registerOptions":{"watchers":[{"globPattern":"**/mix.lock"},{"globPattern":"**/*.{ex,exs}"}]}}]}}, module: kak_lsp::language_server_transport:169 May 01 17:29:56.635 DEBG To server elixirls: {"jsonrpc":"2.0","method":"textDocument/documentSymbol","params":{"textDocument":{"uri":"file:///tmp/repro01/lib/repro01_web.ex"}},"id":10}, module: kak_lsp::language_server_transport:199 May 01 17:29:56.635 ERRO file watch support is disabled, ignoring spurious workspace/didChangeWatchedFiles server request, module: kak_lsp::text_sync:256 May 01 17:29:56.635 DEBG To server elixirls: {"jsonrpc":"2.0","result":null,"id":"1"}, module: kak_lsp::language_server_transport:199 May 01 17:29:56.675 DEBG From server elixirls: {"id":"2","jsonrpc":"2.0","method":"window/workDoneProgress/create","params":{"token":131}}, module: kak_lsp::language_server_transport:169 May 01 17:29:56.675 DEBG To server elixirls: {"jsonrpc":"2.0","result":null,"id":"2"}, module: kak_lsp::language_server_transport:199 May 01 17:29:56.677 DEBG From server elixirls: {"jsonrpc":"2.0","method":"$/progress","params":{"token":131,"value":{"kind":"begin","title":"Project Node"}}}, module: kak_lsp::language_server_transport:169 May 01 17:29:56.678 DEBG To editor `730`: set-option global lsp_progress_indicator ⌛ lsp-handle-progress 131 'Project Node' false '' '' false, module: kak_lsp::editor_transport:95 May 01 17:29:57.400 ERRO Language server stderr: warning: redefining module Repro01.MixProject (current version defined in memory), module: kak_lsp::language_server_transport:68 May 01 17:29:57.400 ERRO Language server stderr: │, module: kak_lsp::language_server_transport:68 May 01 17:29:57.400 ERRO Language server stderr: 1 │ defmodule Repro01.MixProject do, module: kak_lsp::language_server_transport:68 May 01 17:29:57.400 ERRO Language server stderr: │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~, module: kak_lsp::language_server_transport:68 May 01 17:29:57.400 ERRO Language server stderr: │, module: kak_lsp::language_server_transport:68 May 01 17:29:57.400 ERRO Language server stderr: └─ /tmp/repro01/mix.exs:1: Repro01.MixProject (module), module: kak_lsp::language_server_transport:68 May 01 17:29:57.400 ERRO Language server stderr: , module: kak_lsp::language_server_transport:68 May 01 17:29:57.528 DEBG From server elixirls: {"jsonrpc":"2.0","method":"$/progress","params":{"token":131,"value":{"kind":"end"}}}, module: kak_lsp::language_server_transport:169 May 01 17:29:57.529 DEBG To editor `730`: set-option global lsp_progress_indicator ⌛ lsp-handle-progress 131 'Project Node' false '' 100 true, module: kak_lsp::editor_transport:95 May 01 17:29:57.565 DEBG From server elixirls: {"id":1,"jsonrpc":"2.0","result":[]}, module: kak_lsp::language_server_transport:169 May 01 17:29:57.565 DEBG To editor `730`: evaluate-commands -buffer '/tmp/repro01/lib/repro01_web.ex' %§evaluate-commands "set-option buffer lsp_diagnostic_lines 1 '0|%opt[lsp_diagnostic_line_error_sign]'" set-option buffer lsp_inlay_code_lenses 1 §, module: kak_lsp::editor_transport:95 May 01 17:29:57.716 DEBG From server elixirls: {"id":"4","jsonrpc":"2.0","method":"window/workDoneProgress/create","params":{"token":259}}, module: kak_lsp::language_server_transport:169 May 01 17:29:57.717 DEBG From server elixirls: {"jsonrpc":"2.0","method":"$/progress","params":{"token":259,"value":{"kind":"begin","title":"mix local.hex"}}}, module: kak_lsp::language_server_transport:169 May 01 17:29:57.717 DEBG To server elixirls: {"jsonrpc":"2.0","result":null,"id":"4"}, module: kak_lsp::language_server_transport:199 May 01 17:29:57.717 DEBG To editor `730`: set-option global lsp_progress_indicator ⌛ lsp-handle-progress 259 'mix local.hex' false '' '' false, module: kak_lsp::editor_transport:95 May 01 17:29:57.725 DEBG From server elixirls: {"jsonrpc":"2.0","method":"$/progress","params":{"token":259,"value":{"kind":"end"}}}, module: kak_lsp::language_server_transport:169 May 01 17:29:57.725 DEBG From server elixirls: {"id":"5","jsonrpc":"2.0","method":"window/workDoneProgress/create","params":{"token":323}}, module: kak_lsp::language_server_transport:169 May 01 17:29:57.725 DEBG From server elixirls: {"jsonrpc":"2.0","method":"$/progress","params":{"token":323,"value":{"kind":"begin","title":"mix local.rebar"}}}, module: kak_lsp::language_server_transport:169 May 01 17:29:57.725 DEBG To server elixirls: {"jsonrpc":"2.0","result":null,"id":"5"}, module: kak_lsp::language_server_transport:199 May 01 17:29:57.726 DEBG To editor `730`: set-option global lsp_progress_indicator ⌛ lsp-handle-progress 259 'mix local.hex' false '' 100 true, module: kak_lsp::editor_transport:95 May 01 17:29:57.728 DEBG To editor `730`: set-option global lsp_progress_indicator ⌛ lsp-handle-progress 323 'mix local.rebar' false '' '' false, module: kak_lsp::editor_transport:95 May 01 17:29:57.730 DEBG From server elixirls: {"jsonrpc":"2.0","method":"$/progress","params":{"token":323,"value":{"kind":"end"}}}, module: kak_lsp::language_server_transport:169 May 01 17:29:57.730 DEBG From server elixirls: {"id":"6","jsonrpc":"2.0","method":"window/workDoneProgress/create","params":{"token":387}}, module: kak_lsp::language_server_transport:169 May 01 17:29:57.730 DEBG From server elixirls: {"jsonrpc":"2.0","method":"$/progress","params":{"token":387,"value":{"kind":"begin","title":"mix deps.get"}}}, module: kak_lsp::language_server_transport:169 May 01 17:29:57.730 DEBG To server elixirls: {"jsonrpc":"2.0","result":null,"id":"6"}, module: kak_lsp::language_server_transport:199 May 01 17:29:57.732 DEBG To editor `730`: set-option global lsp_progress_indicator ⌛ lsp-handle-progress 323 'mix local.rebar' false '' 100 true, module: kak_lsp::editor_transport:95 May 01 17:29:57.732 DEBG To editor `730`: set-option global lsp_progress_indicator ⌛ lsp-handle-progress 387 'mix deps.get' false '' '' false, module: kak_lsp::editor_transport:95 May 01 17:29:59.401 DEBG From server elixirls: {"jsonrpc":"2.0","method":"$/progress","params":{"token":387,"value":{"kind":"end"}}}, module: kak_lsp::language_server_transport:169 May 01 17:29:59.401 DEBG From server elixirls: {"id":"7","jsonrpc":"2.0","method":"window/workDoneProgress/create","params":{"token":451}}, module: kak_lsp::language_server_transport:169 May 01 17:29:59.401 DEBG From server elixirls: {"jsonrpc":"2.0","method":"$/progress","params":{"token":451,"value":{"kind":"begin","title":"mix loadconfig"}}}, module: kak_lsp::language_server_transport:169 May 01 17:29:59.401 DEBG To server elixirls: {"jsonrpc":"2.0","result":null,"id":"7"}, module: kak_lsp::language_server_transport:199 May 01 17:29:59.402 DEBG To editor `730`: set-option global lsp_progress_indicator ⌛ lsp-handle-progress 387 'mix deps.get' false '' 100 true, module: kak_lsp::editor_transport:95 May 01 17:29:59.407 DEBG To editor `730`: set-option global lsp_progress_indicator ⌛ lsp-handle-progress 451 'mix loadconfig' false '' '' false, module: kak_lsp::editor_transport:95 May 01 17:29:59.415 DEBG From server elixirls: {"jsonrpc":"2.0","method":"$/progress","params":{"token":451,"value":{"kind":"end"}}}, module: kak_lsp::language_server_transport:169 May 01 17:29:59.415 DEBG From server elixirls: {"id":"8","jsonrpc":"2.0","method":"window/workDoneProgress/create","params":{"token":515}}, module: kak_lsp::language_server_transport:169 May 01 17:29:59.415 DEBG To server elixirls: {"jsonrpc":"2.0","result":null,"id":"8"}, module: kak_lsp::language_server_transport:199 May 01 17:29:59.415 DEBG From server elixirls: {"jsonrpc":"2.0","method":"$/progress","params":{"token":515,"value":{"kind":"begin","title":"mix deps.compile"}}}, module: kak_lsp::language_server_transport:169 May 01 17:29:59.415 DEBG To editor `730`: set-option global lsp_progress_indicator ⌛ lsp-handle-progress 451 'mix loadconfig' false '' 100 true, module: kak_lsp::editor_transport:95 May 01 17:29:59.417 DEBG To editor `730`: set-option global lsp_progress_indicator ⌛ lsp-handle-progress 515 'mix deps.compile' false '' '' false, module: kak_lsp::editor_transport:95 May 01 17:30:23.063 ERRO Language server stderr: warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead, module: kak_lsp::language_server_transport:68 May 01 17:30:23.063 ERRO Language server stderr: │, module: kak_lsp::language_server_transport:68 May 01 17:30:23.063 ERRO Language server stderr: 72 │ Logger.warn(""", module: kak_lsp::language_server_transport:68 May 01 17:30:23.063 ERRO Language server stderr: │ ~, module: kak_lsp::language_server_transport:68 May 01 17:30:23.063 ERRO Language server stderr: │, module: kak_lsp::language_server_transport:68 May 01 17:30:23.063 ERRO Language server stderr: └─ lib/tailwind.ex:72:14: Tailwind.start/2, module: kak_lsp::language_server_transport:68 May 01 17:30:23.063 ERRO Language server stderr: , module: kak_lsp::language_server_transport:68 May 01 17:30:23.064 ERRO Language server stderr: warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead, module: kak_lsp::language_server_transport:68 May 01 17:30:23.064 ERRO Language server stderr: │, module: kak_lsp::language_server_transport:68 May 01 17:30:23.064 ERRO Language server stderr: 86 │ Logger.warn(""", module: kak_lsp::language_server_transport:68 May 01 17:30:23.064 ERRO Language server stderr: │ ~, module: kak_lsp::language_server_transport:68 May 01 17:30:23.064 ERRO Language server stderr: │, module: kak_lsp::language_server_transport:68 May 01 17:30:23.064 ERRO Language server stderr: └─ lib/tailwind.ex:86:16: Tailwind.start/2, module: kak_lsp::language_server_transport:68 May 01 17:30:23.064 ERRO Language server stderr: , module: kak_lsp::language_server_transport:68

May 01 17:30:40.470 ERRO Language server stderr: The current heredoc line is indented too little, module: kak_lsp::language_server_transport:68
May 01 17:30:40.470 ERRO Language server stderr: └─ nofile:22:7, module: kak_lsp::language_server_transport:68
May 01 17:30:40.470 ERRO Language server stderr: , module: kak_lsp::language_server_transport:68
May 01 17:30:40.508 DEBG From server elixirls: {"jsonrpc":"2.0","method":"$/progress","params":{"token":707,"value":{"kind":"report","message":"Indexing","percentage":75}}}, module: kak_lsp::language_server_transport:169
May 01 17:30:40.508 WARN Progress report arrived too fast, dropping, module: kak_lsp::progress:116
May 01 17:30:40.675 DEBG From server elixirls: {"jsonrpc":"2.0","method":"$/progress","params":{"token":707,"value":{"kind":"report","message":"Indexing","percentage":77}}}, module: kak_lsp::language_server_transport:169
May 01 17:30:40.675 WARN Progress report arrived too fast, dropping, module: kak_lsp::progress:116
May 01 17:30:40.823 DEBG From server elixirls: {"jsonrpc":"2.0","method":"$/progress","params":{"token":707,"value":{"kind":"report","message":"Indexing","percentage":80}}}, module: kak_lsp::language_server_transport:169
May 01 17:30:40.823 WARN Progress report arrived too fast, dropping, module: kak_lsp::progress:116
May 01 17:30:40.868 DEBG From server elixirls: {"jsonrpc":"2.0","method":"$/progress","params":{"token":707,"value":{"kind":"report","message":"Indexing","percentage":82}}}, module: kak_lsp::language_server_transport:169
May 01 17:30:40.869 WARN Progress report arrived too fast, dropping, module: kak_lsp::progress:116
May 01 17:30:40.981 DEBG From server elixirls: {"jsonrpc":"2.0","method":"$/progress","params":{"token":707,"value":{"kind":"report","message":"Indexing","percentage":84}}}, module: kak_lsp::language_server_transport:169
May 01 17:30:40.982 DEBG To editor 730: set-option global lsp_progress_indicator ⌛
lsp-handle-progress 707 'Indexing source code' false Indexing 84 false, module: kak_lsp::editor_transport:95
May 01 17:30:41.080 DEBG From server elixirls: {"jsonrpc":"2.0","method":"$/progress","params":{"token":707,"value":{"kind":"report","message":"Indexing","percentage":86}}}, module: kak_lsp::language_server_transport:169
May 01 17:30:41.080 WARN Progress report arrived too fast, dropping, module: kak_lsp::progress:116
May 01 17:30:41.086 DEBG From server elixirls: {"jsonrpc":"2.0","method":"$/progress","params":{"token":707,"value":{"kind":"report","message":"Indexing","percentage":88}}}, module: kak_lsp::language_server_transport:169
May 01 17:30:41.086 WARN Progress report arrived too fast, dropping, module: kak_lsp::progress:116
May 01 17:30:41.156 DEBG From server elixirls: {"jsonrpc":"2.0","method":"$/progress","params":{"token":707,"value":{"kind":"report","message":"Indexing","percentage":90}}}, module: kak_lsp::language_server_transport:169
May 01 17:30:41.156 WARN Progress report arrived too fast, dropping, module: kak_lsp::progress:116
May 01 17:30:41.314 DEBG From server elixirls: {"jsonrpc":"2.0","method":"$/progress","params":{"token":707,"value":{"kind":"report","message":"Indexing","percentage":92}}}, module: kak_lsp::language_server_transport:169
May 01 17:30:41.314 WARN Progress report arrived too fast, dropping, module: kak_lsp::progress:116
May 01 17:30:41.322 DEBG From server elixirls: {"jsonrpc":"2.0","method":"$/progress","params":{"token":707,"value":{"kind":"report","message":"Indexing","percentage":94}}}, module: kak_lsp::language_server_transport:169
May 01 17:30:41.322 WARN Progress report arrived too fast, dropping, module: kak_lsp::progress:116
May 01 17:30:41.349 DEBG From server elixirls: {"jsonrpc":"2.0","method":"$/progress","params":{"token":707,"value":{"kind":"report","message":"Indexing","percentage":96}}}, module: kak_lsp::language_server_transport:169
May 01 17:30:41.349 WARN Progress report arrived too fast, dropping, module: kak_lsp::progress:116
May 01 17:30:41.393 DEBG From server elixirls: {"jsonrpc":"2.0","method":"$/progress","params":{"token":707,"value":{"kind":"report","message":"Indexing","percentage":98}}}, module: kak_lsp::language_server_transport:169
May 01 17:30:41.393 WARN Progress report arrived too fast, dropping, module: kak_lsp::progress:116
May 01 17:30:41.467 DEBG From server elixirls: {"jsonrpc":"2.0","method":"$/progress","params":{"token":707,"value":{"kind":"report","message":"Indexing","percentage":100}}}, module: kak_lsp::language_server_transport:169
May 01 17:30:41.467 WARN Progress report arrived too fast, dropping, module: kak_lsp::progress:116
May 01 17:30:41.508 DEBG From server elixirls: {"jsonrpc":"2.0","method":"$/progress","params":{"token":707,"value":{"kind":"end"}}}, module: kak_lsp::language_server_transport:169
May 01 17:30:41.509 DEBG To editor 730: set-option global lsp_progress_indicator ⌛
lsp-handle-progress 707 'Indexing source code' false '' 100 true, module: kak_lsp::editor_transport:95

</details>

You can create a new Elixir project using

```sh
mix new hello_world && cd hello_world && kak mix.exs
```

Interestingly, I tried the lexical with kak-lsp a few days ago too and could not get it to work either.

Lexical works fine with helix incidently so it would seem the issue is with kak-lsp + kakoune.

Debugging tip: Lexical lsp logs are stored in .lexical directory created in your project root. It shows an error but I dont know what it means.

Ah, right, yea it(lexical) works for me in helix as well, but well you never know.

Here is the .lexical/lexical.log:

```

** (FunctionClauseError) no function clause matching in LXical.Server.Configuration.apply_config_change/2
(lx_server 0.5.0) lib/lexical/server/configuration.ex:95: LXical.Server.Configuration.apply_config_change(%LXical.Server.Configuration{project: %LXical.Project{root_uri: "file:///tmp/repro01", mix_exs_uri: "file:///tmp/repro01/mix.exs", mix_project?: true, mix_env: nil, mix_target: nil, env_variables: %{}, project_module: nil, entropy: 28755}, support: %LXical.Server.Configuration.Support{code_action_dynamic_registration: false, hierarchical_symbols: true, snippet: true, deprecated: false, tags: false, signature_help: #Protocol.Types.SignatureHelp.ClientCapabilities<[context_support: false, dynamic_registration: false, signature_information: #Protocol.Types.SignatureHelp.ClientCapabilities.SignatureInformation<[documentation_format: [:plain_text], parameter_information: #Protocol.Types.SignatureHelp.ClientCapabilities.ParameterInformation<[label_offset_support: false]>]>]>, work_done_progress: true}, client_name: "kakoune-lsp", additional_watched_extensions: nil, dialyzer_enabled?: false}, nil)
(lx_server 0.5.0) lib/lexical/server/state.ex:134: LXical.Server.State.apply/2
(lx_server 0.5.0) lib/lexical/server.ex:153: LXical.Server.apply_to_state/2
(lx_server 0.5.0) lib/lexical/server.ex:125: LXical.Server.handle_message/2
(lx_server 0.5.0) lib/lexical/server.ex:67: LXical.Server.handle_cast/2
(stdlib 4.3.1.3) gen_server.erl:1123: :gen_server.try_dispatch/4
(stdlib 4.3.1.3) gen_server.erl:1200: :gen_server.handle_msg/6
(stdlib 4.3.1.3) proc_lib.erl:240: :proc_lib.init_p_do_apply/3
Last message: {:"$gen_cast", {:protocol_message, %LXical.Protocol.Notifications.DidChangeConfiguration{lsp: %LXical.Protocol.Notifications.DidChangeConfiguration.LSP{jsonrpc: "2.0", method: "workspace/didChangeConfiguration", settings: nil}, jsonrpc: "2.0", method: "workspace/didChangeConfiguration", settings: nil}}}
State: %LXical.Server.State{configuration: %LXical.Server.Configuration{project: %LXical.Project{root_uri: "file:///tmp/repro01", mix_exs_uri: "file:///tmp/repro01/mix.exs", mix_project?: true, mix_env: nil, mix_target: nil, env_variables: %{}, project_module: nil, entropy: 28755}, support: %LXical.Server.Configuration.Support{code_action_dynamic_registration: false, hierarchical_symbols: true, snippet: true, deprecated: false, tags: false, signature_help: #Protocol.Types.SignatureHelp.ClientCapabilities<[context_support: false, dynamic_registration: false, signature_information: #Protocol.Types.SignatureHelp.ClientCapabilities.SignatureInformation<[documentation_format: [:plain_text], parameter_information: #Protocol.Types.SignatureHelp.ClientCapabilities.ParameterInformation<[label_offset_support: false]>]>]>, work_done_progress: true}, client_name: "kakoune-lsp", additional_watched_extensions: nil, dialyzer_enabled?: false}, initialized?: true, shutdown_received?: false, in_flight_requests: %{}}
12:29:57.580 [error] Process LXical.Server (#PID<0.140.0>) terminating
** (FunctionClauseError) no function clause matching in LXical.Server.Configuration.apply_config_change/2
(lx_server 0.5.0) lib/lexical/server/configuration.ex:95: LXical.Server.Configuration.apply_config_change(%LXical.Server.Configuration{project: %LXical.Project{root_uri: "file:///tmp/repro01", mix_exs_uri: "file:///tmp/repro01/mix.exs", mix_project?: true, mix_env: nil, mix_target: nil, env_variables: %{}, project_module: nil, entropy: 28755}, support: %LXical.Server.Configuration.Support{code_action_dynamic_registration: false, hierarchical_symbols: true, snippet: true, deprecated: false, tags: false, signature_help: #Protocol.Types.SignatureHelp.ClientCapabilities<[context_support: false, dynamic_registration: false, signature_information: #Protocol.Types.SignatureHelp.ClientCapabilities.SignatureInformation<[documentation_format: [:plain_text], parameter_information: #Protocol.Types.SignatureHelp.ClientCapabilities.ParameterInformation<[label_offset_support: false]>]>]>, work_done_progress: true}, client_name: "kakoune-lsp", additional_watched_extensions: nil, dialyzer_enabled?: false}, nil)
(lx_server 0.5.0) lib/lexical/server/state.ex:134: LXical.Server.State.apply/2
(lx_server 0.5.0) lib/lexical/server.ex:153: LXical.Server.apply_to_state/2
(lx_server 0.5.0) lib/lexical/server.ex:125: LXical.Server.handle_message/2
(lx_server 0.5.0) lib/lexical/server.ex:67: LXical.Server.handle_cast/2
(stdlib 4.3.1.3) gen_server.erl:1123: :gen_server.try_dispatch/4
(stdlib 4.3.1.3) gen_server.erl:1200: :gen_server.handle_msg/6
(stdlib 4.3.1.3) proc_lib.erl:240: :proc_lib.init_p_do_apply/3
Initial Call: LXical.Server.init/1
Ancestors: [LXical.Server.Supervisor, #PID<0.137.0>]
Message Queue Length: 14
Messages: ["$gen_cast": {:protocol_message, %LXical.Protocol.Notifications.DidOpen{lsp: %LXical.Protocol.Notifications.DidOpen.LSP{jsonrpc: "2.0", method: "textDocument/didOpen", text_document: #Protocol.Types.TextDocument.Item<[language_id: "elixir", text: "defmodule Repro01Web do\n @moduledoc """\n The entrypoint for defining your web interface, such\n as controllers, components, channels, and so on.\n\n This can be used in your application as:\n\n use Repro01Web, :controller\n use Repro01Web, :html\n\n The definitions below will be executed for every controller,\n component, etc, so keep them short and clean, focused\n on imports, uses and aliases.\n\n Do NOT define functions inside the quoted expressions\n below. Instead, define additional modules and import\n those modules here.\n """\n\n def static_paths, do: ~w(assets fonts images favicon.ico robots.txt)\n\n def router do\n quote do\n use Phoenix.Router, helpers: false\n\n # Import common connection and controller functions to use in pipelines\n import Plug.Conn\n import Phoenix.Controller\n import Phoenix.LiveView.Router\n end\n end\n\n def channel do\n quote do\n use Phoenix.Channel\n end\n end\n\n def controller do\n quote do\n use Phoenix.Controller,\n formats: [:html, :json],\n layouts: [html: Repro01Web.Layouts]\n\n import Plug.Conn\n import Repro01Web.Gettext\n\n unquote(verified_routes())\n end\n end\n\n def live_view do\n quote do\n use Phoenix.LiveView,\n layout: {Repro01Web.Layouts, :app}\n\n unquote(html_helpers())\n end\n end\n\n def live_component do\n quote do\n use Phoenix.LiveComponent\n\n unquote(html_helpers())\n end\n end\n\n def html do\n quote do\n use Phoenix.Component\n\n # Import convenience functions from controllers\n import Phoenix.Controller,\n only: [get_csrf_token: 0, view_module: 1, view_template: 1]\n\n # Include general helpers for rendering HTML\n unquote(html_helpers())\n end\n end\n\n defp html_helpers do\n quote do\n # HTML escaping functionality\n import Phoenix.HTML\n # Core UI components and translation\n import Repro01Web.CoreComponents\n import Repro01Web.Gettext\n\n # Shortcut for generating JS commands\n alias Phoenix.LiveView.JS\n\n # Routes generation with the ~p sigil\n unquote(verified_routes())\n end\n end\n\n def verified_routes do\n quote do\n use Phoenix.VerifiedRoutes,\n endpoint: Repro01Web.Endpoint,\n router: Repro01Web.Router,\n statics: Repro01Web.static_paths()\n end\n end\n\n @doc """\n When used, dispatch to the appropriate controller/view/etc.\n """\n defmacro using(which) when is_atom(which) do\n apply(MODULE, which, [])\n end\nend\n", uri: "file:///tmp/repro01/lib/repro01_web.ex", version: 1]>}, document: nil, jsonrpc: "2.0", method: "textDocument/didOpen", text_document: nil}}, "$gen_cast": {:protocol_message, %LXical.Protocol.Requests.CodeLens{lsp: %LXical.Protocol.Requests.CodeLens.LSP{id: 2, jsonrpc: "2.0", method: "textDocument/codeLens", partial_result_token: nil, text_document: #Protocol.Types.TextDocument.Identifier<[uri: "file:///tmp/repro01/lib/repro01_web.ex"]>, work_done_token: nil}, document: nil, id: 2, jsonrpc: "2.0", method: "textDocument/codeLens", partial_result_token: nil, text_document: nil, work_done_token: nil}}, "$gen_cast": {:protocol_message, %LXical.Protocol.Requests.CodeAction{lsp: %LXical.Protocol.Requests.CodeAction.LSP{id: 3, jsonrpc: "2.0", method: "textDocument/codeAction", context: #Protocol.Types.CodeAction.Context<[diagnostics: [], trigger_kind: :automatic]>, partial_result_token: nil, range: #Protocol.Types.Range<[end: #Protocol.Types.Position<[character: 0, line: 0]>, start: #Protocol.Types.Position<[character: 0, line: 0]>]>, text_document: #Protocol.Types.TextDocument.Identifier<[uri: "file:///tmp/repro01/lib/repro01_web.ex"]>, work_done_token: nil}, document: nil, range: nil, id: 3, jsonrpc: "2.0", method: "textDocument/codeAction", context: nil, partial_result_token: nil, text_document: nil, work_done_token: nil}}, "$gen_cast": {:protocol_message, %LXical.Protocol.Requests.DocumentSymbols{lsp: %LXical.Protocol.Requests.DocumentSymbols.LSP{id: 4, jsonrpc: "2.0", method: "textDocument/documentSymbol", partial_result_token: nil, text_document: #Protocol.Types.TextDocument.Identifier<[uri: "file:///tmp/repro01/lib/repro01_web.ex"]>, work_done_token: nil}, document: nil, id: 4, jsonrpc: "2.0", method: "textDocument/documentSymbol", partial_result_token: nil, text_document: nil, work_done_token: nil}}, "$gen_cast": {:protocol_message, %LXical.Protocol.Requests.CodeAction{lsp: %LXical.Protocol.Requests.CodeAction.LSP{id: 5, jsonrpc: "2.0", method: "textDocument/codeAction", context: #Protocol.Types.CodeAction.Context<[diagnostics: [], trigger_kind: :automatic]>, partial_result_token: nil, range: #Protocol.Types.Range<[end: #Protocol.Types.Position<[character: 0, line: 1]>, start: #Protocol.Types.Position<[character: 0, line: 1]>]>, text_document: #Protocol.Types.TextDocument.Identifier<[uri: "file:///tmp/repro01/lib/repro01_web.ex"]>, work_done_token: nil}, document: nil, range: nil, id: 5, jsonrpc: "2.0", method: "textDocument/codeAction", context: nil, partial_result_token: nil, text_document: nil, work_done_token: nil}}, "$gen_cast": {:protocol_message, %LXical.Protocol.Requests.DocumentSymbols{lsp: %LXical.Protocol.Requests.DocumentSymbols.LSP{id: 6, jsonrpc: "2.0", method: "textDocument/documentSymbol", partial_result_token: nil, text_document: #Protocol.Types.TextDocument.Identifier<[uri: "file:///tmp/repro01/lib/repro01_web.ex"]>, work_done_token: nil}, document: nil, id: 6, jsonrpc: "2.0", method: "textDocument/documentSymbol", partial_result_token: nil, text_document: nil, work_done_token: nil}}, "$gen_cast": {:protocol_message, %LXical.Protocol.Notifications.Cancel{lsp: %LXical.Protocol.Notifications.Cancel.LSP{jsonrpc: "2.0", method: "$/cancelRequest", id: 5}, jsonrpc: "2.0", method: "$/cancelRequest", id: nil}}, "$gen_cast": {:protocol_message, %LXical.Protocol.Requests.CodeAction{lsp: %LXical.Protocol.Req (truncated)
12:29:57.623 [error] Child LXical.Server of Supervisor LXical.Server.Supervisor terminated
** (exit) an exception was raised:
** (FunctionClauseError) no function clause matching in LXical.Server.Configuration.apply_config_change/2
(lx_server 0.5.0) lib/lexical/server/configuration.ex:95: LXical.Server.Configuration.apply_config_change(%LXical.Server.Configuration{project: %LXical.Project{root_uri: "file:///tmp/repro01", mix_exs_uri: "file:///tmp/repro01/mix.exs", mix_project?: true, mix_env: nil, mix_target: nil, env_variables: %{}, project_module: nil, entropy: 28755}, support: %LXical.Server.Configuration.Support{code_action_dynamic_registration: false, hierarchical_symbols: true, snippet: true, deprecated: false, tags: false, signature_help: #Protocol.Types.SignatureHelp.ClientCapabilities<[context_support: false, dynamic_registration: false, signature_information: #Protocol.Types.SignatureHelp.ClientCapabilities.SignatureInformation<[documentation_format: [:plain_text], parameter_information: #Protocol.Types.SignatureHelp.ClientCapabilities.ParameterInformation<[label_offset_support: false]>]>]>, work_done_progress: true}, client_name: "kakoune-lsp", additional_watched_extensions: nil, dialyzer_enabled?: false}, nil)
(lx_server 0.5.0) lib/lexical/server/state.ex:134: LXical.Server.State.apply/2
(lx_server 0.5.0) lib/lexical/server.ex:153: LXical.Server.apply_to_state/2
(lx_server 0.5.0) lib/lexical/server.ex:125: LXical.Server.handle_message/2
(lx_server 0.5.0) lib/lexical/server.ex:67: LXical.Server.handle_cast/2
(stdlib 4.3.1.3) gen_server.erl:1123: :gen_server.try_dispatch/4
(stdlib 4.3.1.3) gen_server.erl:1200: :gen_server.handle_msg/6
(stdlib 4.3.1.3) proc_lib.erl:240: :proc_lib.init_p_do_apply/3
Pid: #PID<0.140.0>
Start Call: LXical.Server.start_link([])
Restart: :permanent
Shutdown: 5000
Type: :worker
12:29:57.628 [info] Child LXical.Server of Supervisor LXical.Server.Supervisor started
Pid: #PID<0.164.0>
Start Call: LXical.Server.start_link([])
Restart: :permanent
Shutdown: 5000
Type: :worker
12:30:35.610 [info] Compiled repro01 in 38.1 seconds
13:12:46.380 [error] GenServer LXical.Server terminating
** (FunctionClauseError) no function clause matching in LXical.Server.Provider.Queue.add/2
(lx_server 0.5.0) lib/lexical/server/provider/queue.ex:171: LXical.Server.Provider.Queue.add(%LXical.Protocol.Requests.CodeAction{lsp: %LXical.Protocol.Requests.CodeAction.LSP{id: 11, jsonrpc: "2.0", method: "textDocument/codeAction", context: #Protocol.Types.CodeAction.Context<[diagnostics: [], trigger_kind: :automatic]>, partial_result_token: nil, range: #Protocol.Types.Range<[end: #Protocol.Types.Position<[character: 7, line: 29]>, start: #Protocol.Types.Position<[character: 7, line: 29]>]>, text_document: #Protocol.Types.TextDocument.Identifier<[uri: "file:///tmp/repro01/lib/repro01_web.ex"]>, work_done_token: nil}, document: nil, range: nil, id: 11, jsonrpc: "2.0", method: "textDocument/codeAction", context: nil, partial_result_token: nil, text_document: nil, work_done_token: nil}, nil)
(lx_server 0.5.0) lib/lexical/server.ex:141: LXical.Server.handle_message/2
(lx_server 0.5.0) lib/lexical/server.ex:67: LXical.Server.handle_cast/2
(stdlib 4.3.1.3) gen_server.erl:1123: :gen_server.try_dispatch/4
(stdlib 4.3.1.3) gen_server.erl:1200: :gen_server.handle_msg/6
(stdlib 4.3.1.3) proc_lib.erl:240: :proc_lib.init_p_do_apply/3
Last message: {:"$gen_cast", {:protocol_message, %LXical.Protocol.Requests.CodeAction{lsp: %LXical.Protocol.Requests.CodeAction.LSP{id: 11, jsonrpc: "2.0", method: "textDocument/codeAction", context: #Protocol.Types.CodeAction.Context<[diagnostics: [], trigger_kind: :automatic]>, partial_result_token: nil, range: #Protocol.Types.Range<[end: #Protocol.Types.Position<[character: 7, line: 29]>, start: #Protocol.Types.Position<[character: 7, line: 29]>]>, text_document: #Protocol.Types.TextDocument.Identifier<[uri: "file:///tmp/repro01/lib/repro01_web.ex"]>, work_done_token: nil}, document: nil, range: nil, id: 11, jsonrpc: "2.0", method: "textDocument/codeAction", context: nil, partial_result_token: nil, text_document: nil, work_done_token: nil}}}
State: %LXical.Server.State{configuration: nil, initialized?: false, shutdown_received?: false, in_flight_requests: %{}}
13:12:46.392 [error] Process LXical.Server (#PID<0.164.0>) terminating
** (FunctionClauseError) no function clause matching in LXical.Server.Provider.Queue.add/2
(lx_server 0.5.0) lib/lexical/server/provider/queue.ex:171: LXical.Server.Provider.Queue.add(%LXical.Protocol.Requests.CodeAction{lsp: %LXical.Protocol.Requests.CodeAction.LSP{id: 11, jsonrpc: "2.0", method: "textDocument/codeAction", context: #Protocol.Types.CodeAction.Context<[diagnostics: [], trigger_kind: :automatic]>, partial_result_token: nil, range: #Protocol.Types.Range<[end: #Protocol.Types.Position<[character: 7, line: 29]>, start: #Protocol.Types.Position<[character: 7, line: 29]>]>, text_document: #Protocol.Types.TextDocument.Identifier<[uri: "file:///tmp/repro01/lib/repro01_web.ex"]>, work_done_token: nil}, document: nil, range: nil, id: 11, jsonrpc: "2.0", method: "textDocument/codeAction", context: nil, partial_result_token: nil, text_document: nil, work_done_token: nil}, nil)
(lx_server 0.5.0) lib/lexical/server.ex:141: LXical.Server.handle_message/2
(lx_server 0.5.0) lib/lexical/server.ex:67: LXical.Server.handle_cast/2
(stdlib 4.3.1.3) gen_server.erl:1123: :gen_server.try_dispatch/4
(stdlib 4.3.1.3) gen_server.erl:1200: :gen_server.handle_msg/6
(stdlib 4.3.1.3) proc_lib.erl:240: :proc_lib.init_p_do_apply/3
Initial Call: LXical.Server.init/1
Ancestors: [LXical.Server.Supervisor, #PID<0.137.0>]
Message Queue Length: 2
Messages: ["$gen_cast": {:protocol_message, %LXical.Protocol.Notifications.Cancel{lsp: %LXical.Protocol.Notifications.Cancel.LSP{jsonrpc: "2.0", method: "$/cancelRequest", id: 10}, jsonrpc: "2.0", method: "$/cancelRequest", id: nil}}, "$gen_cast": {:protocol_message, %LXical.Protocol.Requests.DocumentSymbols{lsp: %LXical.Protocol.Requests.DocumentSymbols.LSP{id: 12, jsonrpc: "2.0", method: "textDocument/documentSymbol", partial_result_token: nil, text_document: #Protocol.Types.TextDocument.Identifier<[uri: "file:///tmp/repro01/lib/repro01_web.ex"]>, work_done_token: nil}, document: nil, id: 12, jsonrpc: "2.0", method: "textDocument/documentSymbol", partial_result_token: nil, text_document: nil, work_done_token: nil}}]
Links: [#PID<0.138.0>]
Dictionary: []
Trapping Exits: false
Status: :running
Heap Size: 6772
Stack Size: 28
Reductions: 15517
13:12:46.399 [error] Child LXical.Server of Supervisor LXical.Server.Supervisor terminated
** (exit) an exception was raised:
** (FunctionClauseError) no function clause matching in LXical.Server.Provider.Queue.add/2
(lx_server 0.5.0) lib/lexical/server/provider/queue.ex:171: LXical.Server.Provider.Queue.add(%LXical.Protocol.Requests.CodeAction{lsp: %LXical.Protocol.Requests.CodeAction.LSP{id: 11, jsonrpc: "2.0", method: "textDocument/codeAction", context: #Protocol.Types.CodeAction.Context<[diagnostics: [], trigger_kind: :automatic]>, partial_result_token: nil, range: #Protocol.Types.Range<[end: #Protocol.Types.Position<[character: 7, line: 29]>, start: #Protocol.Types.Position<[character: 7, line: 29]>]>, text_document: #Protocol.Types.TextDocument.Identifier<[uri: "file:///tmp/repro01/lib/repro01_web.ex"]>, work_done_token: nil}, document: nil, range: nil, id: 11, jsonrpc: "2.0", method: "textDocument/codeAction", context: nil, partial_result_token: nil, text_document: nil, work_done_token: nil}, nil)
(lx_server 0.5.0) lib/lexical/server.ex:141: LXical.Server.handle_message/2
(lx_server 0.5.0) lib/lexical/server.ex:67: LXical.Server.handle_cast/2
(stdlib 4.3.1.3) gen_server.erl:1123: :gen_server.try_dispatch/4
(stdlib 4.3.1.3) gen_server.erl:1200: :gen_server.handle_msg/6
(stdlib 4.3.1.3) proc_lib.erl:240: :proc_lib.init_p_do_apply/3
Pid: #PID<0.164.0>
Start Call: LXical.Server.start_link([])
Restart: :permanent
Shutdown: 5000
Type: :worker
13:12:46.402 [info] Child LXical.Server of Supervisor LXical.Server.Supervisor started
Pid: #PID<0.165.0>
Start Call: LXical.Server.start_link([])
Restart: :permanent
Shutdown: 5000
Type: :worker

What if you changed your kak-lsp.toml command to something like <your local path to>/start_lexical.sh ? does that help ? (it didn't help for me btw, lexical still does not work with kak-lsp for me)

What if you changed your kak-lsp.toml command to something like <your local path to>/start_lexical.sh ? does that help ? (it didn't help for me btw, lexical still does not work with kak-lsp for me)

Does not work for me either, the logs are really hard to grok for me as well :S

Thanks for the fix -- I can confirm that lexical works nicely with kak-lsp now for me :-) !