Skip to content

Instantly share code, notes, and snippets.

@rohshall
Last active November 12, 2022 19:52
Show Gist options
  • Save rohshall/d3f2b99e04720f05ee761dc69c30b7ff to your computer and use it in GitHub Desktop.
Save rohshall/d3f2b99e04720f05ee761dc69c30b7ff to your computer and use it in GitHub Desktop.
nvim
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