Add C/C++ and Scala environments
This commit is contained in:
@ -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
20
modules/dev/cc.nix
Normal 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
18
modules/dev/scala.nix
Normal 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
16
modules/dev/shell.nix
Normal 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
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
@ -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 ""}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
5
modules/editors/neovim/lua/config/lsp/cc.lua
Normal file
5
modules/editors/neovim/lua/config/lsp/cc.lua
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
lspconfig = require('lspconfig')
|
||||||
|
|
||||||
|
-- Requires C/C++
|
||||||
|
lspconfig.ccls.setup{}
|
||||||
|
|
5
modules/editors/neovim/lua/config/lsp/scala.lua
Normal file
5
modules/editors/neovim/lua/config/lsp/scala.lua
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
lspconfig = require('lspconfig')
|
||||||
|
|
||||||
|
-- Requires Scala
|
||||||
|
lspconfig.metals.setup{}
|
||||||
|
|
Reference in New Issue
Block a user