Modularized helix
This commit is contained in:
parent
42cab14829
commit
5c78d0c1f5
@ -18,7 +18,15 @@
|
|||||||
applications.devenv.enable = true;
|
applications.devenv.enable = true;
|
||||||
applications.firefox.enable = true;
|
applications.firefox.enable = true;
|
||||||
applications.git.enable = true;
|
applications.git.enable = true;
|
||||||
applications.helix.enable = true;
|
applications.helix = {
|
||||||
|
enable = true;
|
||||||
|
markdown = true;
|
||||||
|
rust = true;
|
||||||
|
systemverilog = true;
|
||||||
|
nix = true;
|
||||||
|
latex = true;
|
||||||
|
vue = true;
|
||||||
|
};
|
||||||
applications.zsh.enable = true;
|
applications.zsh.enable = true;
|
||||||
applications.ssh.enable = true;
|
applications.ssh.enable = true;
|
||||||
applications.thunderbird.enable = true;
|
applications.thunderbird.enable = true;
|
||||||
@ -51,6 +59,7 @@
|
|||||||
unstable.prusa-slicer
|
unstable.prusa-slicer
|
||||||
|
|
||||||
unstable.surfer # waveform viewer
|
unstable.surfer # waveform viewer
|
||||||
|
pomodoro-gtk
|
||||||
|
|
||||||
# Office
|
# Office
|
||||||
libreoffice
|
libreoffice
|
||||||
|
@ -12,37 +12,68 @@ in {
|
|||||||
Enable helix text editor
|
Enable helix text editor
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
settings.applications.helix.markdown = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Enable markdown language support
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
settings.applications.helix.systemverilog = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Enable systemverilog language support
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
settings.applications.helix.nix = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = true;
|
||||||
|
description = ''
|
||||||
|
Enable nix language support
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
settings.applications.helix.latex = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = true;
|
||||||
|
description = ''
|
||||||
|
Enable latex language support
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
settings.applications.helix.vue = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = true;
|
||||||
|
description = ''
|
||||||
|
Enable vue/nuxt language support
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
settings.applications.helix.rust = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Enable rust language support
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; lib.concatLists [
|
||||||
# Markdown
|
(lib.optionals cfg.markdown [ unstable.marksman unstable.markdown-oxide dprint ])
|
||||||
unstable.marksman
|
(lib.optionals cfg.systemverilog [ unstable.svls ])
|
||||||
unstable.markdown-oxide
|
(lib.optionals cfg.nix [ unstable.nix unstable.nixpkgs-fmt ])
|
||||||
dprint
|
(lib.optionals cfg.latex [ tectonic unstable.texlab ])
|
||||||
|
(lib.optionals cfg.vue [ unstable.vue-language-server unstable.typescript unstable.typescript-language-server ])
|
||||||
# Systemverilog
|
|
||||||
unstable.svls
|
|
||||||
|
|
||||||
# Assembly
|
|
||||||
unstable.asm-lsp
|
|
||||||
|
|
||||||
# Nixos
|
|
||||||
unstable.nil
|
|
||||||
unstable.nixpkgs-fmt
|
|
||||||
|
|
||||||
# Latex
|
|
||||||
tectonic
|
|
||||||
unstable.texlab
|
|
||||||
|
|
||||||
# Vue/Nuxt
|
|
||||||
unstable.vue-language-server
|
|
||||||
unstable.typescript
|
|
||||||
unstable.typescript-language-server
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# Markdown
|
# Markdown
|
||||||
home.file.".config/.dprint.json".text =''
|
home.file.".config/.dprint.json" = lib.mkIf cfg.markdown {
|
||||||
|
text = ''
|
||||||
{
|
{
|
||||||
"markdown": {
|
"markdown": {
|
||||||
"lineWidth":120,
|
"lineWidth":120,
|
||||||
@ -53,6 +84,7 @@ in {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
programs.helix = {
|
programs.helix = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@ -65,24 +97,19 @@ in {
|
|||||||
};
|
};
|
||||||
languages = {
|
languages = {
|
||||||
# Rust
|
# Rust
|
||||||
language-server.rust-analyzer.config = {
|
language-server.rust-analyzer.config = lib.mkIf cfg.rust {
|
||||||
cargo = {
|
cargo = {
|
||||||
features = "all";
|
features = "all";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Systemverilog
|
# Systemverilog
|
||||||
language-server.svls = {
|
language-server.svls = lib.mkIf cfg.systemverilog {
|
||||||
command = "svls";
|
command = "svls";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Systemverilog
|
|
||||||
language-server.asm = {
|
|
||||||
command = "asm-lsp";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Latex
|
# Latex
|
||||||
language-server.texlab = {
|
language-server.texlab = lib.mkIf cfg.latex {
|
||||||
config = {
|
config = {
|
||||||
texlab.chktex = {
|
texlab.chktex = {
|
||||||
onOpenAndSave = true;
|
onOpenAndSave = true;
|
||||||
@ -116,7 +143,7 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
language-server.typescript-language-server.config = {
|
language-server.typescript-language-server.config = lib.mkIf cfg.vue {
|
||||||
# tsserver = {
|
# tsserver = {
|
||||||
# path = "${pkgs.unstable.typescript}/bin/tsserver";
|
# path = "${pkgs.unstable.typescript}/bin/tsserver";
|
||||||
# };
|
# };
|
||||||
@ -148,18 +175,12 @@ in {
|
|||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
|
|
||||||
language = [
|
language = lib.concatLists [
|
||||||
{
|
(lib.optionals cfg.systemverilog [{
|
||||||
name = "verilog";
|
name = "verilog";
|
||||||
language-servers = [ "svls" ];
|
language-servers = [ "svls" ];
|
||||||
}
|
}])
|
||||||
{
|
(lib.optionals cfg.markdown [{
|
||||||
name = "asm";
|
|
||||||
scope = "source.s";
|
|
||||||
language-servers = [ "asm" ];
|
|
||||||
file-types = [ "s" "S" ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "markdown";
|
name = "markdown";
|
||||||
auto-format = true;
|
auto-format = true;
|
||||||
language-servers = [ "markdown-oxide" ];
|
language-servers = [ "markdown-oxide" ];
|
||||||
@ -170,11 +191,11 @@ in {
|
|||||||
name = "typst";
|
name = "typst";
|
||||||
auto-format = false;
|
auto-format = false;
|
||||||
formatter.command = "${pkgs.typstfmt}/bin/typstfmt";
|
formatter.command = "${pkgs.typstfmt}/bin/typstfmt";
|
||||||
}
|
}])
|
||||||
{
|
(lib.optionals cfg.vue [{
|
||||||
name = "vue";
|
name = "vue";
|
||||||
language-servers = ["vuels" "typescript-language-server"];
|
language-servers = ["vuels" "typescript-language-server"];
|
||||||
}
|
}])
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user