summaryrefslogtreecommitdiff
path: root/lua/ide.lua
diff options
context:
space:
mode:
authorIan Griffin <migriffin@disroot.org>2022-09-30 20:06:55 +0800
committerIan Griffin <migriffin@disroot.org>2022-09-30 20:06:55 +0800
commit0e1bf5aad478a4030f31acd8bbea874b71e42f43 (patch)
treeb31312df0273548387a613ff2f4e00bc6828b379 /lua/ide.lua
initial commit
Diffstat (limited to 'lua/ide.lua')
-rw-r--r--lua/ide.lua161
1 files changed, 161 insertions, 0 deletions
diff --git a/lua/ide.lua b/lua/ide.lua
new file mode 100644
index 0000000..ff5a62d
--- /dev/null
+++ b/lua/ide.lua
@@ -0,0 +1,161 @@
+--
+-- IDE-like features
+--
+
+-- Load required tools
+local pk_use = require 'packer'.use
+local ct = require 'conftool'
+
+
+--
+-- Tree Sitter
+--
+pk_use {
+ 'nvim-treesitter/nvim-treesitter',
+ run = ':TSUpdate',
+ config = function()
+ require('nvim-treesitter.configs').setup{
+ ensure_installed = {
+ "bash",
+ "bibtex",
+ "c",
+ "cpp",
+ "css",
+ "go",
+ "html",
+ "javascript",
+ "json",
+ "latex",
+ "python",
+ "typescript",
+ "vim",
+ },
+ sync_install = false,
+ highlight = {
+ enable = true,
+ }
+ }
+ end
+}
+
+--
+-- Autocompletion
+--
+pk_use {
+ 'ms-jpq/coq_nvim',
+ branch = 'coq',
+ config = function()
+ vim.cmd([[autocmd VimEnter * COQnow]])
+ end
+}
+pk_use {
+ 'ms-jpq/coq.artifacts',
+ branch = 'artifacts'
+}
+
+--
+-- Language Configurations
+--
+pk_use 'ap/vim-css-color'
+-- close tags in html languages
+pk_use {
+ 'alvan/closetag.vim',
+ ft = {"html", "vue"}
+}
+pk_use {
+ 'fatih/vim-go',
+ ft = 'go'
+}
+pk_use {
+ 'lervag/vimtex',
+ ft = 'tex',
+ config = function()
+ local defs = require 'defaults'
+ vim.g.vimtex_view_general_viewer = defs.external_pdfviewer
+ vim.g.vimtex_compiler_latexmk_engines = { _ = '-xelatex'}
+ vim.g.vimtex_compiler_progname = 'nvim'
+ end
+}
+
+
+--
+-- Language Server
+--
+
+-- Basic commands
+pk_use 'nanotee/nvim-lsp-basics'
+
+-- Language Server Installer
+pk_use {
+ 'williamboman/mason.nvim',
+ config = function()
+ require('mason').setup()
+ end
+}
+pk_use {
+ 'williamboman/mason-lspconfig.nvim',
+ requires = {
+ 'williamboman/mason.nvim',
+ 'ms-jpq/coq_nvim'
+ },
+ config = function()
+ local masonlsp = require 'mason-lspconfig'
+ masonlsp.setup {
+ ensure_installed = {
+ "sumneko_lua",
+ "gopls",
+ "vimls"
+ }
+ }
+ masonlsp.setup_handlers {
+ function(server_name)
+ require('lspconfig')[server_name].setup(require('coq').lsp_ensure_capabilities {
+ on_attach = function(client, bufnr)
+ local basics = require('lsp_basics')
+ basics.make_lsp_commands(client, bufnr)
+ basics.make_lsp_mappings(client, bufnr)
+ end
+ })
+ end
+ }
+ end
+}
+
+pk_use {'neovim/nvim-lspconfig'}
+
+--
+-- Show code diagnostics in a separate buffer window
+--
+pk_use {
+ 'folke/trouble.nvim',
+ config = function()
+ require('trouble').setup {
+ icons = false,
+ fold_open = "v",
+ fold_closed = ">",
+ signs = {
+ error = "E:",
+ warning = "W:",
+ hint = "H:",
+ information = "I:"
+ },
+ use_diagnostic_signs = false
+ }
+
+ require('conftool').map('n', '<C-S-`>', ':TroubleToggle<CR>')
+ end
+}
+
+--
+-- Debugger Adapter Protocol
+--
+--[[
+pk_use {
+ 'mfussenegger/nvim-dap',
+ config = function()
+ local dap = require('dap')
+
+ end
+}
+--]]
+