-
Notifications
You must be signed in to change notification settings - Fork 0
/
init.lua
132 lines (109 loc) · 3.31 KB
/
init.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
-- Bootstrap Packer
local ensure_packer = function()
local fn = vim.fn
local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim'
if fn.empty(fn.glob(install_path)) > 0 then
fn.system({'git', 'clone', '--depth', '1', 'https:/wbthomason/packer.nvim', install_path})
vim.cmd [[packadd packer.nvim]]
return true
end
return false
end
local packer_bootstrap = ensure_packer()
require('packer').startup(function(use)
use 'wbthomason/packer.nvim'
-- My plugins here
-- Color scheme
use 'navarasu/onedark.nvim';
-- Telescope fuzzy finder
use "nvim-telescope/telescope.nvim";
use "nvim-telescope/telescope-fzf-native.nvim";
use "nvim-lua/plenary.nvim";
--"nvim-telescope/telescope-ui-select.nvim";
-- Configs for NeoVim LSP client
use "neovim/nvim-lspconfig";
-- Show LSP status messages
--use "nvim-lua/lsp-status.nvim";
-- Status line in Lua
use "nvim-lualine/lualine.nvim";
-- Motion plugin
use "ggandor/leap.nvim";
-- Notification framework
--use "rcarriga/nvim-notify";
-- LSP-based Completion plugin
--use "hrsh7th/nvim-cmp";
--use "hrsh7th/cmp-nvim-lsp";
-- nvim Tree for directory browsing
--"nvim-tree/nvim-web-devicons";
--"nvim-tree/nvim-tree.lua";
-- Automatically set up your configuration after cloning packer.nvim
-- Put this at the end after all plugins
if packer_bootstrap then
require('packer').sync()
end
end)
-- Enable OneDark colour scheme
require('onedark').load()
--vim.lsp.set_log_level("debug")
-- autocomplete config
--[[local cmp = require 'cmp'
cmp.setup
{
mapping =
{
['<Tab>'] = cmp.mapping.select_next_item(),
['<S-Tab>'] = cmp.mapping.select_prev_item(),
['<CR>'] = cmp.mapping.confirm({
behavior = cmp.ConfirmBehavior.Replace,
select = true,
})
},
sources =
{
{ name = 'nvim_lsp' },
}
}--]]
local lualine = require('lualine')
lualine.setup{}
-- Set up Leap
require('leap').add_default_mappings()
-- omnisharp lsp config
--[[
require'lspconfig'.omnisharp.setup
{
capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()),
on_attach = function(client, bufnr)
local bufopts = { noremap=true, silent=true, buffer=bufnr }
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts)
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts)
vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
end,
cmd = { "dotnet", "/opt/omnisharp-roslyn/OmniSharp.dll", "--languageserver" , "--hostPID", tostring(pid) },
root_dir = require('lspconfig').util.find_git_ancestor,
--single_file_support = true,
}
-- rust_analyzer lsp config
require('lspconfig')['rust_analyzer'].setup
{
on_attach = function(client, bufnr)
local bufopts = { noremap=true, silent=true, buffer=bufnr }
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts)
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts)
end,
flags = lsp_flags,
-- Server-specific settings...
settings = {
["rust-analyzer"] = {}
}
}--]]
-- Nvim Tree config
--require("nvim-tree").setup()
local set = vim.opt
-- Set the behavior of tab
set.tabstop = 4
set.shiftwidth = 4
set.softtabstop = 4
set.expandtab = true
set.smartindent = true
-- Enable line numbers
set.number = true