diff --git a/modules/shell/helix.nix b/modules/shell/helix.nix index 2f409f0..e0c2a9c 100644 --- a/modules/shell/helix.nix +++ b/modules/shell/helix.nix @@ -30,11 +30,31 @@ line-number = "relative"; bufferline = "multiple"; color-modes = true; + cursorline = true; lsp = { display-messages = true; display-inlay-hints = true; }; shell = ["nu" "-c"]; + statusline.left = [ + "mode" + "spinner" + "spacer" + "version-control" + "file-name" + "diagnostics" + "read-only-indicator" + "file-modification-indicator" + "spacer" + ]; + + statusline.right = [ + "workspace-diagnostics" + "register" + "position" + "file-encoding" + "file-type" + ]; idle-timeout = 30; indent-guides = { render = true; @@ -90,20 +110,36 @@ scope = "type"; }; }; + completion.termSearch.enable = true; + diagnostics.enable = true; + inlayHints = { + bindingModeHints.enable = true; + closureCaptureHints.enable = true; + closureReturnTypeHints.enable = true; + discriminantHints.enable = true; + expressionAdjustmentHints = { + hideOutsideUnsafe = true; + }; + lifetimeElisionHints.enable = "skip_trivial"; + }; + interpret.tests = true; + lens = { + references = { + adt.enable = true; + trait.enable = true; + }; + }; + typing.autoClosingAngleBrackets.enable = true; }; }; "emmet-language-server" = { command = "emmet-language-server"; args = ["--stdio"]; }; - # "php" = { - # name = "php"; - # file-types = [ "php" ]; - # language-server = { - # command = "psalm"; - # args = ["--language-server"]; - # }; - # }; + "psalm" = { + command = "psalm"; + args = ["--language-server"]; + }; "typst-lsp" = { command = "typst-lsp"; config = { @@ -126,6 +162,10 @@ name = "nu"; language-servers = ["nu-builtin-lsp"]; } + { + name = "php"; + language-servers = ["psalm"]; + } { name = "typst"; scope = "source.typst";