From 37c954c3297402b62c5448bfef3a2c73074e1d63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ensar=20Saraj=C4=8Di=C4=87?= Date: Fri, 21 May 2021 22:08:28 +0200 Subject: [PATCH] Fix csharp and dotnet projectionist config --- symlinks/config/nvim/after/ftplugin/cs.vim | 2 + symlinks/config/nvim/lua/init/plugins.lua | 1 + symlinks/config/nvim/lua/lsp/servers.lua | 2 +- .../config/nvim/lua/plugin/projectionist.lua | 87 +++++++++++++++---- symlinks/config/nvim/plugin/ale.vim | 3 +- 5 files changed, 78 insertions(+), 17 deletions(-) create mode 100644 symlinks/config/nvim/after/ftplugin/cs.vim diff --git a/symlinks/config/nvim/after/ftplugin/cs.vim b/symlinks/config/nvim/after/ftplugin/cs.vim new file mode 100644 index 0000000..3101d7c --- /dev/null +++ b/symlinks/config/nvim/after/ftplugin/cs.vim @@ -0,0 +1,2 @@ +setlocal ts=4 sts=4 sw=4 expandtab autoindent +let b:undo_ftplugin = '|setlocal ts< sts< sw< expandtab< autoindent<' diff --git a/symlinks/config/nvim/lua/init/plugins.lua b/symlinks/config/nvim/lua/init/plugins.lua index 9b6937c..4cd3740 100644 --- a/symlinks/config/nvim/lua/init/plugins.lua +++ b/symlinks/config/nvim/lua/init/plugins.lua @@ -10,6 +10,7 @@ return require('packer').startup { use 'tpope/vim-vinegar' -- Netrw improvements use 'tpope/vim-obsession' -- Session.vim management use 'tpope/vim-dadbod' -- Database access + use 'kristijanhusak/vim-dadbod-ui' -- UI For Dadbod use 'tpope/vim-speeddating' -- and for dates use 'tpope/vim-dispatch' -- Dispatch command use 'tpope/vim-projectionist' -- Project config file! diff --git a/symlinks/config/nvim/lua/lsp/servers.lua b/symlinks/config/nvim/lua/lsp/servers.lua index c6ab178..e5f5ac7 100644 --- a/symlinks/config/nvim/lua/lsp/servers.lua +++ b/symlinks/config/nvim/lua/lsp/servers.lua @@ -25,7 +25,7 @@ local on_attach = function(client, bufnr) end -- Lsp default language servers -local servers = { "bashls", "clangd", "jsonls", "pyright", "rust_analyzer", "kotlin_language_server", "vimls", "clojure_lsp" } +local servers = { "bashls", "clangd", "jsonls", "pyright", "rust_analyzer", "kotlin_language_server", "vimls", "clojure_lsp", "gopls" } for _, lsp in ipairs(servers) do lspconfig[lsp].setup { on_attach = on_attach } end diff --git a/symlinks/config/nvim/lua/plugin/projectionist.lua b/symlinks/config/nvim/lua/plugin/projectionist.lua index ca8a775..770512a 100644 --- a/symlinks/config/nvim/lua/plugin/projectionist.lua +++ b/symlinks/config/nvim/lua/plugin/projectionist.lua @@ -146,27 +146,76 @@ local python_config = { } } -local dotnet_config = { - ["*"] = { - start = "dotnet run", - shell = "dotnet fsi" +local dotnet_solution_config = { + ["src/**/Controllers/*.cs"] = { + type = "controller", + alternate = { + "tests/{dirname}.Tests/Controllers/{basename}Tests.cs", + "tests/{dirname}.IntegrationTests/Controllers/{basename}Tests.cs" + } }, - ["src/Controllers/*.cs"] = { - type = "controller" + ["src/**/Models/*.cs"] = { + type = "model", + alternate = "tests/{dirname}.Tests/Models/{basename}Tests.cs" }, - ["src/Models/*.cs"] = { - type = "model" + ["src/**/Views/*.cshtml"] = { + type = "view", + alternate = "tests/{dirname}.Tests/Views/{basename}Tests.cs" }, - ["src/Views/*.cshtml"] = { - type = "view" + ["src/**/Services/*.cs"] = { + type = "service", + alternate = "tests/{dirname}.Tests/Services/{basename}Tests.cs" }, - ["src/*.cs"] = { + ["src/**/appsettings*json"] = { + type = "appsettings" + }, + ["src/**/*.cs"] = { type = "source", - alternate = "tests/{}Tests.cs" + alternate = "tests/{dirname}.Tests/{basename}Tests.cs", + template = { + "using System;", + "", + "namespace {dirname|dot}", + "{", + " public class {basename}", + " {", + " }", + "}" + } }, - ["tests/*Tests.cs"] = { + ["tests/**.IntegrationTests/Controllers/*Tests.cs"] = { type = "test", - alternate = "src/{}.cs" + alternate = "src/{dirname}/Controllers/{basename}.cs" + }, + ["tests/**.Tests/Controllers/*Tests.cs"] = { + type = "test", + alternate = "src/{dirname}/Controllers/{basename}.cs" + }, + ["tests/**.Tests/Views/*Tests.cs"] = { + type = "test", + alternate = "src/{dirname}/Views/{basename}.cs" + }, + ["tests/**.Tests/Models/*Tests.cs"] = { + type = "test", + alternate = "src/{dirname}/Models/{basename}.cs" + }, + ["tests/**.Tests/Services/*Tests.cs"] = { + type = "test", + alternate = "src/{dirname}/Services/{basename}.cs" + }, + ["tests/**/*Tests.cs"] = { + type = "test", + alternate = "src/{dirname}/{basename}.cs", + template = { + "using System;", + "", + "namespace {dirname|dot}", + "{", + " public class {basename}Tests", + " {", + " }", + "}" + } } } @@ -222,10 +271,18 @@ local lua_vim_plugin_config = { } } +local csharp_project_config = { + ["*"] = { + start = "dotnet run", + console = "dotnet fsi" + } +} + vim.g.projectionist_heuristics = { ["pubspec.yaml"] = flutter_config, ["requirements.txt|pyproject.toml"] = python_config, - ["*.csproj"] = dotnet_config, + ["*.sln"] = dotnet_solution_config, + ["*.csproj"] = csharp_project_config, ["plugin/|autoload/"] = vim_plugin_config, ["lua/"] = lua_vim_plugin_config } diff --git a/symlinks/config/nvim/plugin/ale.vim b/symlinks/config/nvim/plugin/ale.vim index 7230ea7..0052b06 100644 --- a/symlinks/config/nvim/plugin/ale.vim +++ b/symlinks/config/nvim/plugin/ale.vim @@ -11,7 +11,7 @@ let g:ale_linters = {} let g:ale_linters.python = ['flake8'] let g:ale_linters.kotlin = ['ktlint'] let g:ale_linters.clojure = [] -let g:ale_linters.cs = ['OmniSharp'] +let g:ale_linters.cs = ['OmniSharp'] " ALE Fixers configuration let g:ale_fixers = {} @@ -19,6 +19,7 @@ let g:ale_fixers['*'] = ['remove_trailing_lines', 'trim_whitespace'] let g:ale_fixers.python = ['autopep8', 'isort'] let g:ale_fixers.dart = ['dartfmt'] let g:ale_fixers.lua = ['luafmt'] +let g:ale_fixers.go = ['gofmt'] " Warnings navigation nmap [W (ale_first)