initial
This commit is contained in:
22
config/languages/default.nix
Normal file
22
config/languages/default.nix
Normal file
@ -0,0 +1,22 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./treesitter-nvim.nix
|
||||
./nvim-jdtls.nix
|
||||
./nvim-lint.nix
|
||||
./rainbow-delimeters.nix
|
||||
];
|
||||
|
||||
options = {
|
||||
languages.enable = lib.mkEnableOption "Enable languages module";
|
||||
};
|
||||
config = lib.mkIf config.languages.enable {
|
||||
treesitter-nvim.enable = lib.mkDefault true;
|
||||
nvim-jdtls.enable = lib.mkDefault false;
|
||||
nvim-lint.enable = lib.mkDefault true;
|
||||
rainbow-delimeters.enable = lib.mkDefault true;
|
||||
};
|
||||
}
|
90
config/languages/nvim-jdtls.nix
Normal file
90
config/languages/nvim-jdtls.nix
Normal file
@ -0,0 +1,90 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
javaTestPath = "/nix/store/j3nvmhvj2pmnykw5pbm51dn0bz4cv6j3-vscode-extension-vscjava-vscode-java-test-0.38.2023032402/share/vscode/extensions/vscjava.vscode-java-test/server/com.microsoft.java.test.plugin-0.38.2.jar
|
||||
";
|
||||
in {
|
||||
options = {
|
||||
nvim-jdtls.enable = lib.mkEnableOption "Enable nvim-jdtls module";
|
||||
};
|
||||
config = lib.mkIf config.nvim-jdtls.enable {
|
||||
plugins.nvim-jdtls = {
|
||||
enable = true;
|
||||
cmd = [
|
||||
"/nix/store/20h2hjjm94gbskqhbwikbgxbblv1xpf2-jdt-language-server-1.31.0/bin/jdtls"
|
||||
];
|
||||
# configuration = "/path/to/configuration";
|
||||
data = "~/.cache/jdtls/workspace";
|
||||
settings = {
|
||||
java = {
|
||||
signatureHelp = true;
|
||||
completion = true;
|
||||
};
|
||||
};
|
||||
initOptions = {
|
||||
bundles = [
|
||||
"/nix/store/b9ib40q36wxjl4xs5lng263lflz1fsi7-vscode-extension-vscjava-vscode-java-debug-0.49.2023032407/share/vscode/extensions/vscjava.vscode-java-debug/server/com.microsoft.java.debug.plugin-0.44.0.jar"
|
||||
"${javaTestPath}"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
#
|
||||
# extraConfigLua = ''
|
||||
# local jdtls = require("jdtls")
|
||||
# local cmp_nvim_lsp = require("cmp_nvim_lsp")
|
||||
#
|
||||
# local root_dir = require("jdtls.setup").find_root({ "packageInfo" }, "Config")
|
||||
# local home = os.getenv("HOME")
|
||||
# local eclipse_workspace = home .. "/.local/share/eclipse/" .. vim.fn.fnamemodify(root_dir, ":p:h:t")
|
||||
#
|
||||
# local ws_folders_jdtls = {}
|
||||
# if root_dir then
|
||||
# local file = io.open(root_dir .. "/.bemol/ws_root_folders")
|
||||
# if file then
|
||||
# for line in file:lines() do
|
||||
# table.insert(ws_folders_jdtls, "file://" .. line)
|
||||
# end
|
||||
# file:close()
|
||||
# end
|
||||
# end
|
||||
#
|
||||
# -- for completions
|
||||
# local client_capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||
# local capabilities = cmp_nvim_lsp.default_capabilities(client_capabilities)
|
||||
#
|
||||
# local config = {
|
||||
# capabilities = capabilities,
|
||||
# cmd = {
|
||||
# "${pkgs.jdt-language-server}/bin/jdt-language-server",
|
||||
# "--jvm-arg=-javaagent:" .. home .. "/Developer/lombok.jar",
|
||||
# "-data",
|
||||
# eclipse_workspace,
|
||||
# "--add-modules=ALL-SYSTEM",
|
||||
# },
|
||||
# root_dir = root_dir,
|
||||
# init_options = {
|
||||
# workspaceFolders = ws_folders_jdtls,
|
||||
# },
|
||||
# settings = {
|
||||
# java = {
|
||||
# signatureHelp = { enabled = true},
|
||||
# completion = { enabled = true },
|
||||
# },
|
||||
# },
|
||||
# on_attach = function(client, bufnr)
|
||||
# local opts = { silent = true, buffer = bufnr }
|
||||
# vim.keymap.set('n', "<leader>lo", jdtls.organize_imports, { desc = 'Organize imports', buffer = bufnr })
|
||||
# vim.keymap.set('n', "<leader>df", jdtls.test_class, opts)
|
||||
# vim.keymap.set('n', "<leader>dn", jdtls.test_nearest_method, opts)
|
||||
# vim.keymap.set('n', '<leader>rv', jdtls.extract_variable_all, { desc = 'Extract variable', buffer = bufnr })
|
||||
# vim.keymap.set('n', '<leader>rc', jdtls.extract_constant, { desc = 'Extract constant', buffer = bufnr })
|
||||
# end
|
||||
# }
|
||||
#
|
||||
# jdtls.start_or_attach(config)
|
||||
# '';
|
||||
|
30
config/languages/nvim-lint.nix
Normal file
30
config/languages/nvim-lint.nix
Normal file
@ -0,0 +1,30 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options = {
|
||||
nvim-lint.enable = lib.mkEnableOption "Enable nvim-lint module";
|
||||
};
|
||||
config = lib.mkIf config.nvim-lint.enable {
|
||||
plugins.lint = {
|
||||
enable = true;
|
||||
lintersByFt = {
|
||||
c = ["cpplint"];
|
||||
cpp = ["cpplint"];
|
||||
go = ["golangci-lint"];
|
||||
nix = ["statix"];
|
||||
lua = ["selene"];
|
||||
python = ["flake8"];
|
||||
javascript = ["eslint_d"];
|
||||
javascriptreact = ["eslint_d"];
|
||||
typescript = ["eslint_d"];
|
||||
typescriptreact = ["eslint_d"];
|
||||
json = ["jsonlint"];
|
||||
java = ["checkstyle"];
|
||||
haskell = ["hlint"];
|
||||
bash = ["shellcheck"];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
14
config/languages/rainbow-delimeters.nix
Normal file
14
config/languages/rainbow-delimeters.nix
Normal file
@ -0,0 +1,14 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options = {
|
||||
rainbow-delimeters.enable = lib.mkEnableOption "Enable rainbow-delimeters module";
|
||||
};
|
||||
config = lib.mkIf config.rainbow-delimeters.enable {
|
||||
plugins.rainbow-delimiters = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
}
|
128
config/languages/treesitter-nvim.nix
Normal file
128
config/languages/treesitter-nvim.nix
Normal file
@ -0,0 +1,128 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options = {
|
||||
treesitter-nvim.enable = lib.mkEnableOption "Enable treesitter-nvim module";
|
||||
};
|
||||
config = lib.mkIf config.treesitter-nvim.enable {
|
||||
plugins.treesitter = {
|
||||
enable = true;
|
||||
settings = {
|
||||
highlight = {
|
||||
enable = true;
|
||||
};
|
||||
indent = {
|
||||
enable = true;
|
||||
};
|
||||
autopairs = {
|
||||
enable = true;
|
||||
};
|
||||
folding = {
|
||||
enable = true;
|
||||
};
|
||||
ensure_installed = [
|
||||
"bash"
|
||||
"c"
|
||||
# "html"
|
||||
# "css"
|
||||
# "javascript"
|
||||
# "jsdoc"
|
||||
"json"
|
||||
"lua"
|
||||
"luadoc"
|
||||
# "luap"
|
||||
"nix"
|
||||
"rust"
|
||||
# "java"
|
||||
"markdown"
|
||||
# "markdown_inline"
|
||||
"python"
|
||||
# "query"
|
||||
# "regex"
|
||||
# "tsx"
|
||||
# "typescript"
|
||||
"typst"
|
||||
"vim"
|
||||
"vimdoc"
|
||||
"toml"
|
||||
"yaml"
|
||||
];
|
||||
auto_install = true;
|
||||
incremental_selection = {
|
||||
enable = true;
|
||||
keymaps = {
|
||||
init_selection = "<C-space>";
|
||||
node_incremental = "<C-space>";
|
||||
scope_incremental = false;
|
||||
node_decremental = "<bs>";
|
||||
};
|
||||
};
|
||||
};
|
||||
nixvimInjections = true;
|
||||
};
|
||||
|
||||
plugins.treesitter-textobjects = {
|
||||
enable = true;
|
||||
select = {
|
||||
enable = true;
|
||||
lookahead = true;
|
||||
keymaps = {
|
||||
"aa" = "@parameter.outer";
|
||||
"ia" = "@parameter.inner";
|
||||
"af" = "@function.outer";
|
||||
"if" = "@function.inner";
|
||||
"ac" = "@class.outer";
|
||||
"ic" = "@class.inner";
|
||||
"ii" = "@conditional.inner";
|
||||
"ai" = "@conditional.outer";
|
||||
"il" = "@loop.inner";
|
||||
"al" = "@loop.outer";
|
||||
"at" = "@comment.outer";
|
||||
};
|
||||
};
|
||||
move = {
|
||||
enable = true;
|
||||
gotoNextStart = {
|
||||
"]m" = "@function.outer";
|
||||
"]]" = "@class.outer";
|
||||
};
|
||||
gotoNextEnd = {
|
||||
"]M" = "@function.outer";
|
||||
"][" = "@class.outer";
|
||||
};
|
||||
gotoPreviousStart = {
|
||||
"[m" = "@function.outer";
|
||||
"[[" = "@class.outer";
|
||||
};
|
||||
gotoPreviousEnd = {
|
||||
"[M" = "@function.outer";
|
||||
"[]" = "@class.outer";
|
||||
};
|
||||
};
|
||||
swap = {
|
||||
enable = true;
|
||||
swapNext = {
|
||||
"<leader>a" = "@parameters.inner";
|
||||
};
|
||||
swapPrevious = {
|
||||
"<leader>A" = "@parameter.outer";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
plugins.ts-autotag = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
plugins.treesitter-context = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
plugins.ts-context-commentstring = {
|
||||
enable = true;
|
||||
disableAutoInitialization = false;
|
||||
};
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user