forked from aylac.top/nixcfg
this repo has no description

they call me the dumbest ever

aylac.top 43396a1a 4571d5df

verified
Changed files
+49 -28
modules
home
programs
zed-editor
snippets
editor
+24 -18
modules/home/programs/zed-editor/default.nix
···
cfg = srv.config or {};
hasArgs = args != [];
hasSettings = lib.isAttrs cfg && (builtins.length (builtins.attrNames cfg) > 0);
+
isHelixOnly = srv.helix-only or false;
in
-
lib.filterAttrs (_: v: v != null) (
-
{
-
binary = lib.filterAttrs (_: v: v != null) (
-
{path = srv.command;}
-
// (
-
if hasArgs
-
then {arguments = args;}
-
else {}
-
)
-
);
-
}
-
// (
-
if hasSettings
-
then {settings = cfg;}
-
else {}
-
)
-
);
+
if isHelixOnly
+
then null
+
else
+
lib.filterAttrs (_: v: v != null) (
+
{
+
binary = lib.filterAttrs (_: v: v != null) (
+
{path = srv.command;}
+
// (
+
if hasArgs
+
then {arguments = args;}
+
else {}
+
)
+
);
+
}
+
// (
+
if hasSettings
+
then {settings = cfg;}
+
else {}
+
)
+
);
in {
options.myHome.programs.zed-editor.enable = lib.mkEnableOption "zed editor";
···
"svelte"
"vue"
"basher"
+
"sql"
+
#"ruby"
#"elixir"
];
userSettings = {
···
editorCfg.languages
)
);
-
lsp = lib.mapAttrs mkZedLsp editorCfg.languageServers;
+
lsp = lib.filterAttrs (_: v: v != null) (lib.mapAttrs mkZedLsp editorCfg.languageServers);
};
userTasks = [
{
+25 -10
modules/home/snippets/editor/default.nix
···
command,
args ? [],
config ? {},
+
helix-only ? false,
}: {
-
inherit name command args config;
+
inherit name command args config helix-only;
};
# Helper function to create formatter definitions
···
'';
args = [];
config = {provideFormatter = false;};
+
helix-only = true;
};
vscode-html-language-server = mkLspServer "vscode-html-language-server" {
···
args = ["127.0.0.1" "6005"];
config = {language-id = "gdscript";};
};
+
+
solargraph = mkLspServer "solargraph" {
+
command = lib.getExe pkgs.rubyPackages.solargraph;
+
args = ["stdio"];
+
};
+
+
#rubocop = mkLspServer "rubocop" {
+
# command = lib.getExe pkgs.rubocop;
+
#};
};
# Formatters
···
languages = {
html = mkLanguage "html" {
full-name = "HTML";
-
language-servers = ["vscode-html-language-server" "superhtml" "biome" "tailwindcss-language-server"];
+
language-servers = ["vscode-html-language-server" "superhtml" "biome"];
formatter = "biome";
helix-formatter = "biomeHtml";
code-actions-on-format = {
···
css = mkLanguage "css" {
full-name = "CSS";
-
language-servers = ["vscode-css-languageserver" "biome" "tailwindcss-language-server"];
+
language-servers = ["vscode-css-languageserver" "biome"];
formatter = "biome";
code-actions-on-format = {
"source.fixAll.biome" = true;
···
javascript = mkLanguage "javascript" {
full-name = "JavaScript";
-
language-servers = ["typescript-language-server" "biome" "tailwindcss-language-server"];
+
language-servers = ["typescript-language-server" "biome"];
formatter = "biome";
code-actions-on-format = {
"source.fixAll.biome" = true;
···
typescript = mkLanguage "typescript" {
full-name = "TypeScript";
-
language-servers = ["typescript-language-server" "biome" "tailwindcss-language-server"];
+
language-servers = ["typescript-language-server" "biome"];
formatter = "biome";
code-actions-on-format = {
"source.fixAll.biome" = true;
···
jsx = mkLanguage "jsx" {
full-name = "JSX";
-
language-servers = ["typescript-language-server" "biome" "tailwindcss-language-server"];
+
language-servers = ["typescript-language-server" "biome"];
formatter = "biome";
code-actions-on-format = {
"source.fixAll.biome" = true;
···
tsx = mkLanguage "tsx" {
full-name = "TSX";
-
language-servers = ["typescript-language-server" "biome" "tailwindcss-language-server"];
+
language-servers = ["typescript-language-server" "biome"];
formatter = "biome";
code-actions-on-format = {
"source.fixAll.biome" = true;
···
svelte = mkLanguage "svelte" {
full-name = "Svelte";
-
language-servers = ["svelte-language-server" "biome" "tailwindcss-language-server"];
+
language-servers = ["svelte-language-server" "typescript-language-server" "biome"];
formatter = "biome";
code-actions-on-format = {
"source.fixAll.biome" = true;
···
vue = mkLanguage "vue" {
full-name = "Vue.js";
-
language-servers = ["vue-language-server" "biome" "tailwindcss-language-server"];
+
language-servers = ["vue-language-server" "biome"];
formatter = "biome";
code-actions-on-format = {
"source.fixAll.biome" = true;
···
formatter = "biome";
code-actions-on-format = {
"source.fixAll.biome" = true;
-
"source.organizeImports.biome" = true;
};
};
···
full-name = "GDScript";
language-servers = ["gdscript-language-server"];
formatter = "gdscript-formatter";
+
};
+
+
ruby = mkLanguage "ruby" {
+
full-name = "Ruby";
+
language-servers = ["solargraph" "rubocop" "!ruby-lsp"];
};
};
};