diff --git a/configurations/android/nix-on-droid.nix b/configurations/android/nix-on-droid.nix index ac01d6fd..ecf0d1f0 100644 --- a/configurations/android/nix-on-droid.nix +++ b/configurations/android/nix-on-droid.nix @@ -52,7 +52,6 @@ user = "nix-on-droid"; ideConfig = { - enableGolang = false; enableJava = false; enableNix = false; }; diff --git a/devShells/neovim-shells/default.nix b/devShells/neovim-shells/default.nix index a733726f..a80a6d66 100644 --- a/devShells/neovim-shells/default.nix +++ b/devShells/neovim-shells/default.nix @@ -25,6 +25,7 @@ in "kotlin" "lua" "markdown" + "golang" "python" "qml" "rust" diff --git a/homeManagerModules/neovim/default.nix b/homeManagerModules/neovim/default.nix index fd4bbdd8..b10a79ed 100644 --- a/homeManagerModules/neovim/default.nix +++ b/homeManagerModules/neovim/default.nix @@ -25,10 +25,6 @@ in { type = types.bool; default = true; }; - enableGolang = mkOption { - type = types.bool; - default = true; - }; enableJava = mkOption { type = types.bool; default = true; diff --git a/homeManagerModules/neovim/langs/c-lang/default.nix b/homeManagerModules/neovim/langs/c-lang/default.nix index 006beb58..e588157b 100644 --- a/homeManagerModules/neovim/langs/c-lang/default.nix +++ b/homeManagerModules/neovim/langs/c-lang/default.nix @@ -15,6 +15,7 @@ in { extraLuaConfig = # lua '' + -- vim.api.nvim_create_autocmd({ 'FileType', 'BufEnter' }, { pattern = { 'cpp', 'c' }, @@ -39,6 +40,7 @@ in { config = # lua '' + -- local lsp = require('lspconfig'); local default_capabilities = require('cmp_nvim_lsp').default_capabilities(); diff --git a/homeManagerModules/neovim/langs/csharp/default.nix b/homeManagerModules/neovim/langs/csharp/default.nix index 05a0b1e5..03ee72c9 100644 --- a/homeManagerModules/neovim/langs/csharp/default.nix +++ b/homeManagerModules/neovim/langs/csharp/default.nix @@ -22,6 +22,7 @@ in { config = # lua '' + -- vim.api.nvim_create_autocmd('User', { pattern = 'RoslynInitialized', diff --git a/homeManagerModules/neovim/langs/default.nix b/homeManagerModules/neovim/langs/default.nix index 84f0f723..3751003f 100644 --- a/homeManagerModules/neovim/langs/default.nix +++ b/homeManagerModules/neovim/langs/default.nix @@ -36,6 +36,7 @@ in { mkBefore # lua '' + -- -- Init object to keep track of loaded devShells local devShells = {}; @@ -93,6 +94,7 @@ in { config = # lua '' + -- require('nvim-autopairs').setup({}); ''; }; @@ -103,6 +105,7 @@ in { config = # lua '' + -- -- Disable virtual_text since it's redundant due to tiny-inline-diagnostic. vim.diagnostic.config({ virtual_text = false, diff --git a/homeManagerModules/neovim/langs/golang/default.nix b/homeManagerModules/neovim/langs/golang/default.nix index 55d109c5..0c270e86 100644 --- a/homeManagerModules/neovim/langs/golang/default.nix +++ b/homeManagerModules/neovim/langs/golang/default.nix @@ -1,27 +1,42 @@ { config, lib, - pkgs, ... }: let inherit (lib) mkIf; cfg = config.programs.neovim; + flakeEnv = config.programs.bash.sessionVariables.FLAKE; in { - config = mkIf (cfg.enable && cfg.ideConfig.enableGolang) { + config = mkIf cfg.enable { programs = { neovim = { - extraPackages = with pkgs; [go gopls]; - extraLuaConfig = # lua '' + -- local lsp = require('lspconfig'); local default_capabilities = require('cmp_nvim_lsp').default_capabilities(); lsp.gopls.setup({ - cmd = { '${pkgs.gopls}/bin/gopls' }, capabilities = default_capabilities, + autostart = false, + }); + + vim.api.nvim_create_autocmd({ 'FileType', 'BufEnter' }, { + pattern = { 'go', 'gomod', 'gowork', 'gotmpl' }, + + callback = function() + vim.cmd[[setlocal ts=4 sw=4 sts=0 expandtab]]; + + if (devShells['golang'] == nil) then + devShells['golang'] = 1; + + require('nix-develop').nix_develop_extend({'${flakeEnv}#golang'}, function() + vim.cmd[[LspStart]]; + end); + end + end, }); ''; }; diff --git a/homeManagerModules/neovim/langs/golang/shell.nix b/homeManagerModules/neovim/langs/golang/shell.nix new file mode 100644 index 00000000..f966c132 --- /dev/null +++ b/homeManagerModules/neovim/langs/golang/shell.nix @@ -0,0 +1,12 @@ +{ + mkShell, + go, + gopls, + ... +}: +mkShell { + packages = [ + go + gopls + ]; +} diff --git a/homeManagerModules/neovim/langs/hyprlang/default.nix b/homeManagerModules/neovim/langs/hyprlang/default.nix index 24df0f66..74214396 100644 --- a/homeManagerModules/neovim/langs/hyprlang/default.nix +++ b/homeManagerModules/neovim/langs/hyprlang/default.nix @@ -13,6 +13,7 @@ in { extraLuaConfig = # lua '' + -- vim.filetype.add({ pattern = { [ '.*/hypr/.*%.conf' ] = 'hyprlang' }, }); diff --git a/homeManagerModules/neovim/langs/java/default.nix b/homeManagerModules/neovim/langs/java/default.nix index 3da9abc1..1e00a555 100644 --- a/homeManagerModules/neovim/langs/java/default.nix +++ b/homeManagerModules/neovim/langs/java/default.nix @@ -22,6 +22,7 @@ in { extraLuaConfig = # lua '' + -- vim.api.nvim_create_autocmd({ 'FileType', 'BufEnter' }, { pattern = 'java', command = 'setlocal ts=4 sw=4 sts=0 expandtab', @@ -36,6 +37,7 @@ in { config = # lua '' + -- local startJdtls = function() local config = { capabilities = require('cmp_nvim_lsp').default_capabilities(), diff --git a/homeManagerModules/neovim/langs/json/default.nix b/homeManagerModules/neovim/langs/json/default.nix index d0038d19..e94e8e5c 100644 --- a/homeManagerModules/neovim/langs/json/default.nix +++ b/homeManagerModules/neovim/langs/json/default.nix @@ -14,6 +14,7 @@ in { extraLuaConfig = # lua '' + -- vim.api.nvim_create_autocmd({ 'FileType', 'BufEnter' }, { pattern = { 'json', 'yaml', '.clang-.*' }, diff --git a/homeManagerModules/neovim/langs/kotlin/default.nix b/homeManagerModules/neovim/langs/kotlin/default.nix index 4a048882..6903e642 100644 --- a/homeManagerModules/neovim/langs/kotlin/default.nix +++ b/homeManagerModules/neovim/langs/kotlin/default.nix @@ -14,6 +14,7 @@ in { extraLuaConfig = # lua '' + -- vim.api.nvim_create_autocmd({ 'FileType', 'BufEnter' }, { pattern = { 'kotlin' }, diff --git a/homeManagerModules/neovim/langs/lua/default.nix b/homeManagerModules/neovim/langs/lua/default.nix index 09662361..c7698ebc 100644 --- a/homeManagerModules/neovim/langs/lua/default.nix +++ b/homeManagerModules/neovim/langs/lua/default.nix @@ -20,6 +20,7 @@ in { config = # lua '' + -- local default_capabilities = require('cmp_nvim_lsp').default_capabilities(); vim.api.nvim_create_autocmd({ 'FileType', 'BufEnter' }, { diff --git a/homeManagerModules/neovim/langs/markdown/default.nix b/homeManagerModules/neovim/langs/markdown/default.nix index 8a97cbc1..cb4be85a 100644 --- a/homeManagerModules/neovim/langs/markdown/default.nix +++ b/homeManagerModules/neovim/langs/markdown/default.nix @@ -27,6 +27,7 @@ in { extraLuaConfig = # lua '' + -- vim.api.nvim_create_autocmd({ 'FileType', 'BufEnter' }, { pattern = { 'markdown', 'tex' }, @@ -69,6 +70,7 @@ in { config = # lua '' + -- require('easytables').setup(); ''; } @@ -99,6 +101,7 @@ in { in # lua '' + -- vim.g.knap_settings = { -- HTML htmloutputext = 'html', diff --git a/homeManagerModules/neovim/langs/nix-lang/default.nix b/homeManagerModules/neovim/langs/nix-lang/default.nix index fd028467..214e9591 100644 --- a/homeManagerModules/neovim/langs/nix-lang/default.nix +++ b/homeManagerModules/neovim/langs/nix-lang/default.nix @@ -74,6 +74,7 @@ in { extraLuaConfig = # lua '' + -- require('lspconfig').nixd.setup({ capabilities = require('cmp_nvim_lsp').default_capabilities(), diff --git a/homeManagerModules/neovim/langs/python/default.nix b/homeManagerModules/neovim/langs/python/default.nix index 0ef2422c..8bfcf4ac 100644 --- a/homeManagerModules/neovim/langs/python/default.nix +++ b/homeManagerModules/neovim/langs/python/default.nix @@ -14,6 +14,7 @@ in { extraLuaConfig = # lua '' + -- local lsp = require('lspconfig'); local default_capabilities = require('cmp_nvim_lsp').default_capabilities(); diff --git a/homeManagerModules/neovim/langs/qml/default.nix b/homeManagerModules/neovim/langs/qml/default.nix index c173ac22..168b0003 100644 --- a/homeManagerModules/neovim/langs/qml/default.nix +++ b/homeManagerModules/neovim/langs/qml/default.nix @@ -14,6 +14,7 @@ in { extraLuaConfig = # lua '' + -- vim.api.nvim_create_autocmd({ 'FileType', 'BufEnter' }, { pattern = { 'qml' }, diff --git a/homeManagerModules/neovim/langs/rust/default.nix b/homeManagerModules/neovim/langs/rust/default.nix index d59047f6..a049b7eb 100644 --- a/homeManagerModules/neovim/langs/rust/default.nix +++ b/homeManagerModules/neovim/langs/rust/default.nix @@ -14,6 +14,7 @@ in { extraLuaConfig = # lua '' + -- vim.api.nvim_create_autocmd({ 'FileType', 'BufEnter' }, { pattern = { 'rust' }, diff --git a/homeManagerModules/neovim/langs/web/default.nix b/homeManagerModules/neovim/langs/web/default.nix index 3127ab8e..6b83de5a 100644 --- a/homeManagerModules/neovim/langs/web/default.nix +++ b/homeManagerModules/neovim/langs/web/default.nix @@ -20,6 +20,7 @@ in { extraLuaConfig = # lua '' + -- local lsp = require('lspconfig'); local tsserver = require('typescript-tools'); local default_capabilities = require('cmp_nvim_lsp').default_capabilities(); @@ -35,7 +36,16 @@ in { end; vim.api.nvim_create_autocmd({ 'FileType', 'BufEnter' }, { - pattern = { 'javascript', 'javascriptreact', 'javascript.jsx', 'typescript', 'typescriptreact', 'typescript.tsx', 'css', 'scss' }, + pattern = { + 'javascript', + 'javascriptreact', + 'javascript.jsx', + 'typescript', + 'typescriptreact', + 'typescript.tsx', + 'css', + 'scss', + }, callback = function() vim.cmd[[setlocal ts=4 sw=4 sts=0 expandtab]]; @@ -185,6 +195,7 @@ in { config = # lua '' + -- local packageInfo = require('package-info'); packageInfo.setup({