Add C/C++ and Scala environments

This commit is contained in:
2023-01-07 19:07:44 +00:00
parent e1b8e670c9
commit 08f527f90c
7 changed files with 75 additions and 0 deletions

View File

@ -3,11 +3,14 @@
./options.nix ./options.nix
./desktop/firefox.nix ./desktop/firefox.nix
./desktop/gnome.nix ./desktop/gnome.nix
./dev/cc.nix
./dev/java.nix ./dev/java.nix
./dev/lua.nix ./dev/lua.nix
./dev/node.nix ./dev/node.nix
./dev/python.nix ./dev/python.nix
./dev/rust.nix ./dev/rust.nix
./dev/scala.nix
./dev/shell.nix
./dev/zig.nix ./dev/zig.nix
./editors/neovim ./editors/neovim
./editors/vscode.nix ./editors/vscode.nix

20
modules/dev/cc.nix Normal file
View File

@ -0,0 +1,20 @@
{ config, lib, pkgs, ... }:
with lib;
with lib.my;
let cfg = config.modules.dev.cc;
in {
options.modules.dev.cc = {
enable = mkBoolOpt false;
};
config = mkIf cfg.enable {
user.packages = with pkgs; [
clang
gcc
gdb
cmake
llvmPackages.libcxx
];
};
}

18
modules/dev/scala.nix Normal file
View File

@ -0,0 +1,18 @@
{ config, lib, pkgs, ... }:
with lib;
with lib.my;
let cfg = config.modules.dev.scala;
in {
options.modules.dev.scala = {
enable = mkBoolOpt false;
};
config = mkIf cfg.enable {
user.packages = with pkgs; [
jdk
sbt
scala
];
};
}

16
modules/dev/shell.nix Normal file
View File

@ -0,0 +1,16 @@
{ config, lib, pkgs, ... }:
with lib;
with lib.my;
let cfg = config.modules.dev.shell;
in {
options.modules.dev.shell = {
enable = mkBoolOpt false;
};
config = mkIf cfg.enable {
user.packages = with pkgs; [
shellcheck
];
};
}

View File

@ -70,6 +70,9 @@ in {
] ++ ] ++
# Install appropriate language servers # Install appropriate language servers
(if dev.cc.enable then [
ccls # C/C++
] else []) ++
(if dev.java.enable then [ (if dev.java.enable then [
java-language-server # Java java-language-server # Java
ltex-ls # LaTeX ltex-ls # LaTeX
@ -96,6 +99,9 @@ in {
(if dev.rust.enable then [ (if dev.rust.enable then [
rust-analyzer # Rust rust-analyzer # Rust
] else []) ++ ] else []) ++
(if dev.scala.enable then [
metals # Scala
] else []) ++
(if dev.zig.enable then [ (if dev.zig.enable then [
zls # Zig zls # Zig
] else []); ] else []);
@ -105,11 +111,13 @@ in {
"nvim/lua" = { source = ./lua; recursive = true; }; "nvim/lua" = { source = ./lua; recursive = true; };
"nvim/lua/config/lsp.lua".text = '' "nvim/lua/config/lsp.lua".text = ''
-- This file is autogenerated, do not edit. -- This file is autogenerated, do not edit.
${if dev.cc.enable then "require('config.lsp.cc')\n" else ""}
${if dev.java.enable then "require('config.lsp.java')\n" else ""} ${if dev.java.enable then "require('config.lsp.java')\n" else ""}
${if dev.lua.enable then "require('config.lsp.lua')\n" else ""} ${if dev.lua.enable then "require('config.lsp.lua')\n" else ""}
${if dev.node.enable then "require('config.lsp.node')\n" else ""} ${if dev.node.enable then "require('config.lsp.node')\n" else ""}
${if dev.python.enable then "require('config.lsp.python')\n" else ""} ${if dev.python.enable then "require('config.lsp.python')\n" else ""}
${if dev.rust.enable then "require('config.lsp.rust')\n" else ""} ${if dev.rust.enable then "require('config.lsp.rust')\n" else ""}
${if dev.scala.enable then "require('config.lsp.scala')\n" else ""}
${if dev.zig.enable then "require('config.lsp.zig')\n" else ""} ${if dev.zig.enable then "require('config.lsp.zig')\n" else ""}
''; '';
}; };

View File

@ -0,0 +1,5 @@
lspconfig = require('lspconfig')
-- Requires C/C++
lspconfig.ccls.setup{}

View File

@ -0,0 +1,5 @@
lspconfig = require('lspconfig')
-- Requires Scala
lspconfig.metals.setup{}