mirror of
https://codeberg.org/tmayoff/.dotfiles.git
synced 2025-12-06 08:48:34 -05:00
234 lines
5.4 KiB
Nix
234 lines
5.4 KiB
Nix
{pkgs, ...}: {
|
|
programs.helix = {
|
|
enable = true;
|
|
package = pkgs.unstable.helix;
|
|
|
|
languages = {
|
|
language-server = {
|
|
clangd = {
|
|
command = "clangd";
|
|
args = ["--header-insertion=never"];
|
|
};
|
|
biome = {
|
|
command = "biome";
|
|
args = ["lsp-proxy"];
|
|
};
|
|
fish_lsp = {
|
|
command = "fish-lsp";
|
|
args = ["start"];
|
|
};
|
|
slangd = {
|
|
command = "slangd";
|
|
};
|
|
};
|
|
|
|
language = [
|
|
{
|
|
name = "fish";
|
|
scope = "source.fish";
|
|
auto-format = true;
|
|
language-servers = [{name = "fish_lsp";}];
|
|
}
|
|
{
|
|
name = "meson";
|
|
scope = "source.meson";
|
|
injection-regex = "meson";
|
|
comment-token = "#";
|
|
indent = {
|
|
tab-width = 2;
|
|
unit = " ";
|
|
};
|
|
auto-format = true;
|
|
formatter = {
|
|
command = "muon";
|
|
args = ["fmt" "-"];
|
|
};
|
|
}
|
|
{
|
|
name = "nix";
|
|
scope = "source.nix";
|
|
auto-format = true;
|
|
formatter = {
|
|
command = "alejandra";
|
|
args = ["-q"];
|
|
};
|
|
}
|
|
{
|
|
name = "cpp";
|
|
language-servers = ["clangd"];
|
|
}
|
|
{
|
|
name = "python";
|
|
language-servers = ["ruff" "basedpyright"];
|
|
}
|
|
{
|
|
name = "objc";
|
|
scope = "source.objc";
|
|
file-types = ["m" "mm" "M"];
|
|
injection-regex = "objc";
|
|
roots = ["xcodeproj"];
|
|
comment-token = "//";
|
|
indent = {
|
|
tab-width = 2;
|
|
unit = " ";
|
|
};
|
|
language-servers = ["clangd"];
|
|
}
|
|
{
|
|
name = "slang";
|
|
scope = "source.slang";
|
|
file-types = ["slang"];
|
|
auto-format = true;
|
|
language-servers = [{name = "slangd";}];
|
|
comment-token = "//";
|
|
}
|
|
# BiomeJS Setup
|
|
{
|
|
name = "javascript";
|
|
language-servers = [
|
|
{
|
|
name = "typescript-language-server";
|
|
except-features = ["format"];
|
|
}
|
|
"biome"
|
|
];
|
|
auto-format = true;
|
|
formatter = {
|
|
command = "biome";
|
|
args = ["format" "--stdin-file-path" "a.js"];
|
|
};
|
|
}
|
|
{
|
|
name = "typescript";
|
|
language-servers = [
|
|
{
|
|
name = "typescript-language-server";
|
|
except-features = ["format"];
|
|
}
|
|
"biome"
|
|
];
|
|
auto-format = true;
|
|
formatter = {
|
|
command = "biome";
|
|
args = ["format" "--stdin-file-path" "a.ts"];
|
|
};
|
|
}
|
|
{
|
|
name = "tsx";
|
|
auto-format = true;
|
|
language-servers = [
|
|
{
|
|
name = "typescript-language-server";
|
|
except-features = ["format"];
|
|
}
|
|
"biome"
|
|
];
|
|
formatter = {
|
|
command = "biome";
|
|
args = ["format" "--stdin-file-path" "a.tsx"];
|
|
};
|
|
}
|
|
{
|
|
name = "jsx";
|
|
auto-format = true;
|
|
language-servers = [
|
|
{
|
|
name = "typescript-language-server";
|
|
except-features = ["format"];
|
|
}
|
|
"biome"
|
|
];
|
|
formatter = {
|
|
command = "biome";
|
|
args = ["format" "--stdin-file-path" "a.jsx"];
|
|
};
|
|
}
|
|
{
|
|
name = "json";
|
|
language-servers = [
|
|
{
|
|
name = "vscode-json-language-server";
|
|
except-features = ["format"];
|
|
}
|
|
"biome"
|
|
];
|
|
}
|
|
];
|
|
|
|
grammar = [
|
|
{
|
|
name = "objc";
|
|
source = {
|
|
git = "https://github.com/tree-sitter-grammars/tree-sitter-objc";
|
|
rev = "18802acf31d0b5c1c1d50bdbc9eb0e1636cab9ed";
|
|
};
|
|
}
|
|
{
|
|
name = "slang";
|
|
source = {
|
|
git = "https://github.com/tree-sitter-grammars/tree-sitter-slang";
|
|
rev = "3ed23c04a412a0559162d9cadf96dfff7cb36079";
|
|
};
|
|
}
|
|
];
|
|
};
|
|
|
|
settings = {
|
|
theme = "base16_terminal";
|
|
editor = {
|
|
auto-format = false;
|
|
end-of-line-diagnostics = "warning";
|
|
true-color = true;
|
|
color-modes = true;
|
|
completion-replace = true;
|
|
rulers = [120];
|
|
auto-save = {
|
|
focus-lost = true;
|
|
};
|
|
|
|
bufferline = "multiple";
|
|
line-number = "relative";
|
|
|
|
inline-diagnostics = {
|
|
cursor-line = "error";
|
|
};
|
|
|
|
statusline = {
|
|
left = ["mode" "spinner" "spacer" "version-control" "file-name"];
|
|
};
|
|
|
|
file-picker = {
|
|
git-ignore = true;
|
|
};
|
|
|
|
lsp = {
|
|
display-inlay-hints = true;
|
|
display-messages = true;
|
|
};
|
|
|
|
cursor-shape.insert = "bar";
|
|
soft-wrap.enable = true;
|
|
};
|
|
|
|
keys = {
|
|
normal = {
|
|
C-right = "move_next_word_start";
|
|
C-left = "move_prev_word_end";
|
|
"=" = ":format";
|
|
|
|
space = {
|
|
F = "file_picker_in_current_buffer_directory";
|
|
};
|
|
|
|
g = {
|
|
f = "no_op";
|
|
};
|
|
};
|
|
insert = {
|
|
C-right = "move_next_word_start";
|
|
C-left = "move_prev_word_end";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|