{ pkgs, ... }: { programs.helix = { enable = true; defaultEditor = true; settings = { theme = "adwaita-dark"; editor.lsp.display-messages = true; editor.inline-diagnostics.cursor-line = "hint"; editor.rulers = [ 81 ]; editor.gutters.layout = [ "diff" "diagnostics" ]; keys.insert.j.k = "normal_mode"; }; languages = { language-server.tinymist = { config.exportPdf = "onSave"; config.outputPath = "$root/$dir/out/$name"; }; language-server.scls = { command = "simple-completion-language-server"; config.feature_words = false; config.feature_snippets = true; config.snippets_first = true; config.snippets_inline_by_word_tail = false; config.feature_unicode_input = true; config.feature_paths = false; config.feature_citations = false; environment.RUST_LOG = "info,simple-completion-language-server=info"; environment.LOG_FILE = "/tmp/completion.log"; }; language = [ { name = "typst"; language-servers = [ "tinymist" "scls" ]; } ]; }; extraPackages = with pkgs; [ simple-completion-language-server nixfmt-rfc-style nil ]; }; home.file.helix-unicode-input = { target = ".config/helix/unicode-input/base.toml"; source = ./base.toml; }; }