Last active
November 12, 2022 19:52
-
-
Save rohshall/d3f2b99e04720f05ee761dc69c30b7ff to your computer and use it in GitHub Desktop.
nvim
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
local function load_plugins() | |
require('packer').startup(function() | |
-- Packer can manage itself | |
use 'wbthomason/packer.nvim' | |
use "neovim/nvim-lspconfig" | |
use "nvim-treesitter/nvim-treesitter" | |
use { | |
'nvim-tree/nvim-tree.lua', | |
requires = { | |
'nvim-tree/nvim-web-devicons', -- optional, for file icons | |
}, | |
tag = 'nightly' -- optional, updated every week. (see issue #1193) | |
} | |
use { | |
'nvim-telescope/telescope.nvim', tag = '0.1.0', | |
requires = { {'nvim-lua/plenary.nvim'} } | |
} | |
use 'lervag/wiki.vim' | |
use 'ojroques/nvim-hardline' | |
end) | |
end | |
local load_config = function() | |
-- disable netrw at the very start of your init.lua (strongly advised) | |
vim.g.loaded_netrw = 1 | |
vim.g.loaded_netrwPlugin = 1 | |
vim.opt.termguicolors = true | |
vim.opt.syntax = 'on' | |
vim.opt.hidden = true | |
vim.opt.tabstop = 4 | |
vim.opt.softtabstop = 4 | |
vim.opt.shiftwidth = 4 | |
vim.opt.expandtab = true | |
vim.opt.smartindent = true | |
vim.opt.number = false | |
vim.opt.completeopt = 'menu,menuone,noselect' | |
vim.opt.cmdheight = 2 | |
vim.opt.linebreak = true | |
vim.cmd('colorscheme desert') | |
vim.g.wiki_root = '~/Documents/Notes' | |
vim.g.wiki_filetypes = {'md'} | |
vim.g.wiki_link_extension = '.md' | |
-- mappings | |
local opts = { noremap=true, silent=true } | |
local builtin = require('telescope.builtin') | |
vim.keymap.set('n', '<leader>ff', builtin.find_files, opts) | |
vim.keymap.set('n', '<leader>fg', builtin.live_grep, opts) | |
vim.keymap.set('n', '<leader>fb', builtin.buffers, opts) | |
vim.keymap.set('n', '<leader>fh', builtin.help_tags, opts) | |
vim.keymap.set('n', '<C-p>', builtin.find_files, opts) | |
vim.keymap.set('n', '<C-o>', ':NvimTreeToggle<CR>', opts) | |
vim.keymap.set("n", "<S-h>", ":bp<CR>", opts) | |
vim.keymap.set("n", "<S-l>", ":bn<CR>", opts) | |
-- Set up plugins | |
require("nvim-tree").setup {} | |
require("hardline").setup { | |
bufferline = true | |
} | |
-- Use an on_attach function to only map the following keys | |
-- after the language server attaches to the current buffer | |
local lspconfig_on_attach = function(client, bufnr) | |
-- Enable completion triggered by <c-x><c-o> | |
vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') | |
local bufopts = { noremap=true, silent=true, buffer=bufnr } | |
vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts) | |
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts) | |
vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts) | |
vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts) | |
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts) | |
vim.keymap.set('n', '<space>K', vim.lsp.buf.signature_help, bufopts) | |
vim.keymap.set('n', 'gt', vim.lsp.buf.type_definition, bufopts) | |
vim.keymap.set('n', '<F2>', vim.lsp.buf.rename, bufopts) | |
vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, bufopts) | |
vim.keymap.set('n', '<space>ca', vim.lsp.buf.code_action, bufopts) | |
vim.keymap.set('n', '<space>f', vim.lsp.buf.formatting, bufopts) | |
vim.keymap.set('n', '<space>e', vim.diagnostic.open_float, opts) | |
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts) | |
vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts) | |
end | |
-- # Set up individual LSP servers | |
require('lspconfig').pylsp.setup { | |
on_attach = lspconfig_on_attach | |
} | |
require('lspconfig').quick_lint_js.setup { | |
on_attach = lspconfig_on_attach | |
} | |
require('lspconfig').java_language_server.setup { | |
on_attach = lspconfig_on_attach, | |
cmd = { "/home/salil/Code/Java/java-language-server/dist/lang_server_linux.sh" } | |
} | |
end | |
load_plugins() | |
load_config() | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment