mirror of
https://github.com/LunarVim/LunarVim.git
synced 2024-09-21 02:55:09 +02:00
Merge branch 'master' of github.com:ChristianChiarulli/LunarVim into stable
This commit is contained in:
commit
8f37e7f278
14 changed files with 224 additions and 94 deletions
60
.github/ISSUE_TEMPLATE/general-issue-form.yaml
vendored
Normal file
60
.github/ISSUE_TEMPLATE/general-issue-form.yaml
vendored
Normal file
|
@ -0,0 +1,60 @@
|
|||
name: General Issue
|
||||
description: File a bug report
|
||||
title: "[Bug]: "
|
||||
labels: [bug]
|
||||
# assignees:
|
||||
# - ChristianChiarulli
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thank you for helping us improve !
|
||||
- type: textarea
|
||||
id: problem-description
|
||||
attributes:
|
||||
label: Problem description
|
||||
description: Also tell us, what did you expect to happen?
|
||||
placeholder: |
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: lunar-vim-version
|
||||
attributes:
|
||||
label: LunarVim version
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: nvim-version
|
||||
attributes:
|
||||
label: Neovim version (>= 0.5)
|
||||
placeholder: nvim --version
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: logs
|
||||
attributes:
|
||||
label: Relevant log output
|
||||
placeholder: |
|
||||
nvim -v
|
||||
:checkhealth
|
||||
:messages
|
||||
render: shell
|
||||
- type: textarea
|
||||
id: screenshots
|
||||
attributes:
|
||||
label: Screenshots
|
||||
description: If applicable, add screenshots to help explain your problem
|
||||
- type: checkboxes
|
||||
id: checks
|
||||
attributes:
|
||||
label: I have read
|
||||
options:
|
||||
- label: The readme
|
||||
required: true
|
||||
- label: The wiki
|
||||
required: true
|
4
ftdetect/zig.lua
Normal file
4
ftdetect/zig.lua
Normal file
|
@ -0,0 +1,4 @@
|
|||
vim.cmd([[
|
||||
au BufRead,BufNewFile *.zig set filetype=zig
|
||||
au BufRead,BufNewFile *.zir set filetype=zir
|
||||
]])
|
1
ftplugin/cpp.lua
Symbolic link
1
ftplugin/cpp.lua
Symbolic link
|
@ -0,0 +1 @@
|
|||
c.lua
|
|
@ -3,8 +3,8 @@ require'lspconfig'.elixirls.setup{
|
|||
}
|
||||
|
||||
-- needed for the LSP to recognize elixir files (alternativly just use elixir-editors/vim-elixir)
|
||||
vim.cmd([[
|
||||
au BufRead,BufNewFile *.ex,*.exs set filetype=elixir
|
||||
au BufRead,BufNewFile *.eex,*.leex,*.sface set filetype=eelixir
|
||||
au BufRead,BufNewFile mix.lock set filetype=elixir
|
||||
]])
|
||||
-- vim.cmd([[
|
||||
-- au BufRead,BufNewFile *.ex,*.exs set filetype=elixir
|
||||
-- au BufRead,BufNewFile *.eex,*.leex,*.sface set filetype=eelixir
|
||||
-- au BufRead,BufNewFile mix.lock set filetype=elixir
|
||||
-- ]])
|
||||
|
|
11
ftplugin/euphoria3.lua
Normal file
11
ftplugin/euphoria3.lua
Normal file
|
@ -0,0 +1,11 @@
|
|||
-- TODO Remove this at some point
|
||||
require'lspconfig'.elixirls.setup{
|
||||
cmd = { DATA_PATH .. "/lspinstall/elixir/elixir-ls/language_server.sh"};
|
||||
}
|
||||
|
||||
-- needed for the LSP to recognize elixir files (alternativly just use elixir-editors/vim-elixir)
|
||||
-- vim.cmd([[
|
||||
-- au BufRead,BufNewFile *.ex,*.exs set filetype=elixir
|
||||
-- au BufRead,BufNewFile *.eex,*.leex,*.sface set filetype=eelixir
|
||||
-- au BufRead,BufNewFile mix.lock set filetype=elixir
|
||||
-- ]])
|
|
@ -26,7 +26,7 @@ require"lspconfig".efm.setup {
|
|||
-- init_options = {initializationOptions},
|
||||
cmd = {DATA_PATH .. "/lspinstall/efm/efm-langserver"},
|
||||
init_options = {documentFormatting = true, codeAction = false},
|
||||
filetypes = {"lua", "python", "javascriptreact", "javascript", "typescript","typescriptreact","sh", "html", "css", "yaml", "markdown", "vue"},
|
||||
filetypes = {"python"},
|
||||
settings = {
|
||||
rootMarkers = {".git/", "requirements.txt"},
|
||||
languages = {
|
||||
|
|
15
ftplugin/zig.lua
Normal file
15
ftplugin/zig.lua
Normal file
|
@ -0,0 +1,15 @@
|
|||
-- Because lspinstall don't support zig yet,
|
||||
-- So we need zls preset in global lib
|
||||
-- Further custom install zls in
|
||||
-- https://github.com/zigtools/zls/wiki/Downloading-and-Building-ZLS
|
||||
require'lspconfig'.zls.setup{
|
||||
root_dir = require'lspconfig'.util.root_pattern(".git", "build.zig", "zls.json"),
|
||||
on_attach = require'lsp'.common_on_attach,
|
||||
}
|
||||
require('lv-utils').define_augroups({
|
||||
_zig_autoformat = {
|
||||
{'BufWritePre', '*.zig', 'lua vim.lsp.buf.formatting_sync(nil, 1000)'},
|
||||
{'BufEnter', '*.zig', ':lua vim.api.nvim_buf_set_option(0, "commentstring", "// %s")'}
|
||||
}
|
||||
})
|
||||
vim.cmd("setl expandtab tabstop=8 softtabstop=4 shiftwidth=4")
|
|
@ -1,6 +1,7 @@
|
|||
CONFIG_PATH = vim.fn.stdpath('config')
|
||||
DATA_PATH = vim.fn.stdpath('data')
|
||||
CACHE_PATH = vim.fn.stdpath('cache')
|
||||
TERMINAL = vim.fn.expand('$TERMINAL')
|
||||
|
||||
O = {
|
||||
auto_close_tree = 0,
|
||||
|
@ -18,6 +19,8 @@ O = {
|
|||
ignore_case = true,
|
||||
smart_case = true,
|
||||
lushmode = false,
|
||||
hl_search = false,
|
||||
transparent_window = false;
|
||||
leader_key = "space";
|
||||
|
||||
-- @usage pass a table with your desired languages
|
||||
|
@ -145,9 +148,9 @@ O = {
|
|||
virtual_text = {spacing = 0, prefix = ""},
|
||||
signs = true,
|
||||
underline = true,
|
||||
},
|
||||
cross_file_rename = true,
|
||||
header_insertion = 'never'
|
||||
}
|
||||
},
|
||||
ruby = {
|
||||
diagnostics = {
|
||||
|
|
|
@ -20,7 +20,6 @@ vim.cmd("nnoremap <silent> gd <cmd>lua vim.lsp.buf.definition()<CR>")
|
|||
vim.cmd("nnoremap <silent> gD <cmd>lua vim.lsp.buf.declaration()<CR>")
|
||||
vim.cmd("nnoremap <silent> gr <cmd>lua vim.lsp.buf.references()<CR>")
|
||||
vim.cmd("nnoremap <silent> gi <cmd>lua vim.lsp.buf.implementation()<CR>")
|
||||
vim.cmd("nnoremap <silent> ca :Lspsaga code_action<CR>")
|
||||
vim.cmd("nnoremap <silent> K :Lspsaga hover_doc<CR>")
|
||||
-- vim.cmd('nnoremap <silent> <C-k> <cmd>lua vim.lsp.buf.signature_help()<CR>')
|
||||
vim.cmd("nnoremap <silent> <C-p> :Lspsaga diagnostic_jump_prev<CR>")
|
||||
|
|
|
@ -103,7 +103,7 @@ table.insert(gls.left, {
|
|||
highlight = {colors.red, colors.bg}
|
||||
}
|
||||
})
|
||||
print(vim.fn.getbufvar(0, 'ts'))
|
||||
-- print(vim.fn.getbufvar(0, 'ts'))
|
||||
vim.fn.getbufvar(0, 'ts')
|
||||
|
||||
table.insert(gls.left, {
|
||||
|
@ -178,9 +178,38 @@ table.insert(gls.right, {
|
|||
}
|
||||
})
|
||||
|
||||
local get_lsp_client = function (msg)
|
||||
msg = msg or "No Active LSP Client"
|
||||
local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype')
|
||||
local clients = vim.lsp.get_active_clients()
|
||||
if next(clients) == nil then
|
||||
return msg
|
||||
end
|
||||
local lsps = ""
|
||||
for _,client in ipairs(clients) do
|
||||
local filetypes = client.config.filetypes
|
||||
if filetypes and vim.fn.index(filetypes, buf_ft) ~=1 then
|
||||
-- print(client.name)
|
||||
if lsps == "" then
|
||||
-- print("first", lsps)
|
||||
lsps = client.name
|
||||
else
|
||||
lsps = lsps .. ", " .. client.name
|
||||
-- print("more", lsps)
|
||||
end
|
||||
end
|
||||
end
|
||||
if lsps == "" then
|
||||
return msg
|
||||
else
|
||||
return lsps
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
table.insert(gls.right, {
|
||||
ShowLspClient = {
|
||||
provider = 'GetLspClient',
|
||||
provider = get_lsp_client,
|
||||
condition = function()
|
||||
local tbl = {['dashboard'] = true, [' '] = true}
|
||||
if tbl[vim.bo.filetype] then return false end
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
local M = {}
|
||||
|
||||
M.config = function()
|
||||
require('hop').setup()
|
||||
vim.api.nvim_set_keymap('n', 's', ":HopChar2<cr>", {silent = true})
|
||||
vim.api.nvim_set_keymap('n', 'S', ":HopWord<cr>", {silent = true})
|
||||
end
|
||||
|
|
|
@ -10,21 +10,19 @@ if fn.empty(fn.glob(install_path)) > 0 then
|
|||
end
|
||||
|
||||
local packer_ok, packer = pcall(require, "packer")
|
||||
if not packer_ok then
|
||||
return
|
||||
end
|
||||
if not packer_ok then return end
|
||||
|
||||
packer.init {
|
||||
-- compile_path = vim.fn.stdpath('data')..'/site/pack/loader/start/packer.nvim/plugin/packer_compiled.vim',
|
||||
compile_path = require("packer.util").join_paths(vim.fn.stdpath('config'), 'plugin', 'packer_compiled.vim'),
|
||||
git = {
|
||||
clone_timeout = 300
|
||||
},
|
||||
compile_path = require("packer.util").join_paths(vim.fn.stdpath('config'),
|
||||
'plugin',
|
||||
'packer_compiled.vim'),
|
||||
git = {clone_timeout = 300},
|
||||
display = {
|
||||
open_fn = function()
|
||||
return require("packer.util").float { border = "single" }
|
||||
end,
|
||||
},
|
||||
return require("packer.util").float {border = "single"}
|
||||
end
|
||||
}
|
||||
}
|
||||
|
||||
vim.cmd "autocmd BufWritePost plugins.lua PackerCompile" -- Auto compile when there are changes in plugins.lua
|
||||
|
@ -46,15 +44,15 @@ return require("packer").startup(function(use)
|
|||
config = [[require('lv-telescope')]],
|
||||
cmd = "Telescope"
|
||||
}
|
||||
-- Snap
|
||||
use {
|
||||
"camspiers/snap",
|
||||
rocks = "fzy",
|
||||
config = function()
|
||||
require("lv-snap").config()
|
||||
end,
|
||||
disable = not O.plugin.snap.active,
|
||||
}
|
||||
-- Snap TODO disable for now, need to only install fzy when user specifies they want to use snap
|
||||
-- use {
|
||||
-- "camspiers/snap",
|
||||
-- rocks = "fzy",
|
||||
-- config = function()
|
||||
-- require("lv-snap").config()
|
||||
-- end,
|
||||
-- disable = not O.plugin.snap.active
|
||||
-- }
|
||||
-- Autocomplete
|
||||
use {
|
||||
"hrsh7th/nvim-compe",
|
||||
|
@ -90,8 +88,11 @@ return require("packer").startup(function(use)
|
|||
use {"folke/which-key.nvim"}
|
||||
|
||||
-- Autopairs
|
||||
use {"windwp/nvim-autopairs",
|
||||
config = function() require'lv-autopairs' end
|
||||
use {
|
||||
"windwp/nvim-autopairs",
|
||||
config = function()
|
||||
require 'lv-autopairs'
|
||||
end
|
||||
}
|
||||
|
||||
-- Comments
|
||||
|
@ -221,7 +222,6 @@ return require("packer").startup(function(use)
|
|||
|
||||
use {
|
||||
"lukas-reineke/indent-blankline.nvim",
|
||||
branch = "lua",
|
||||
event = "BufRead",
|
||||
setup = function()
|
||||
|
||||
|
@ -400,9 +400,8 @@ return require("packer").startup(function(use)
|
|||
-- Lush Create Color Schemes
|
||||
use {
|
||||
"rktjmp/lush.nvim",
|
||||
event = "VimEnter",
|
||||
-- cmd = {"LushRunQuickstart", "LushRunTutorial", "Lushify"},
|
||||
-- disable = not O.plugin.lush.active,
|
||||
disable = not O.plugin.lush.active,
|
||||
}
|
||||
-- HTML preview
|
||||
use {
|
||||
|
@ -421,15 +420,12 @@ return require("packer").startup(function(use)
|
|||
-- LANGUAGE SPECIFIC GOES HERE
|
||||
|
||||
-- Latex TODO what filetypes should this be active for?
|
||||
use {"lervag/vimtex", ft = "latex", disable = not O.lang.latex.active}
|
||||
use {"lervag/vimtex", ft = "latex"}
|
||||
|
||||
-- Rust tools
|
||||
-- TODO: use lazy loading maybe?
|
||||
use {"simrat39/rust-tools.nvim", disable = not O.lang.rust.active}
|
||||
use {"simrat39/rust-tools.nvim", ft = "rust"}
|
||||
|
||||
-- Elixir
|
||||
use {"elixir-editors/vim-elixir",
|
||||
ft = {"elixir", "eelixir"},
|
||||
disable = not O.lang.elixir.active
|
||||
}
|
||||
use {"elixir-editors/vim-elixir", ft = {"elixir", "eelixir", "euphoria3"}}
|
||||
end)
|
||||
|
|
108
lua/settings.lua
108
lua/settings.lua
|
@ -1,50 +1,60 @@
|
|||
vim.cmd('set iskeyword+=-') -- treat dash separated words as a word text object"
|
||||
vim.opt.shortmess:append("c") -- Don't pass messages to |ins-completion-menu|.
|
||||
vim.cmd('set inccommand=split') -- Make substitution work in realtime
|
||||
vim.o.hidden = O.hidden_files -- Required to keep multiple buffers open multiple buffers
|
||||
vim.o.title = true
|
||||
TERMINAL = vim.fn.expand('$TERMINAL')
|
||||
vim.cmd('let &titleold="'..TERMINAL..'"')
|
||||
vim.o.titlestring="%<%F%=%l/%L - nvim"
|
||||
vim.wo.wrap = O.wrap_lines -- Display long lines as just one line
|
||||
vim.cmd('set whichwrap+=<,>,[,],h,l') -- move to next line with theses keys
|
||||
vim.o.pumheight = 10 -- Makes popup menu smaller
|
||||
vim.o.fileencoding = "utf-8" -- The encoding written to file
|
||||
vim.o.cmdheight = 2 -- More space for displaying messages
|
||||
vim.cmd('set colorcolumn=99999') -- fix indentline for now
|
||||
vim.o.mouse = "a" -- Enable your mouse
|
||||
vim.o.splitbelow = true -- Horizontal splits will automatically be below
|
||||
vim.o.termguicolors = true -- set term gui colors most terminals support this
|
||||
vim.o.splitright = true -- Vertical splits will automatically be to the right
|
||||
-- vim.o.t_Co = "256" -- Support 256 colors
|
||||
vim.o.conceallevel = 0 -- So that I can see `` in markdown files
|
||||
vim.opt.tabstop = 4 -- Insert 2 spaces for a tab
|
||||
vim.opt.shiftwidth = 4 -- Change the number of space characters inserted for indentation
|
||||
--vim.opt.softtabstop = 4
|
||||
vim.opt.expandtab = true -- Converts tabs to spaces
|
||||
vim.o.completeopt = "menuone,noselect"
|
||||
vim.bo.smartindent = true -- Makes indenting smart
|
||||
vim.wo.number = O.number -- set numbered lines
|
||||
vim.wo.relativenumber = O.relative_number -- set relative number
|
||||
vim.wo.cursorline = O.cursorline -- set highlighting of the current line
|
||||
vim.o.showtabline = 2 -- Always show tabs
|
||||
vim.o.showmode = false -- We don't need to see things like -- INSERT -- anymore
|
||||
vim.o.backup = false -- This is recommended by coc
|
||||
vim.o.writebackup = false -- This is recommended by coc
|
||||
vim.o.swapfile = false -- Do not write any swp files
|
||||
vim.o.undodir = CACHE_PATH .. '/undo' -- Set undo directory
|
||||
vim.o.undofile = true -- Enable persistent undo
|
||||
vim.wo.signcolumn = "yes" -- Always show the signcolumn, otherwise it would shift the text each time
|
||||
vim.o.updatetime = 300 -- Faster completion
|
||||
vim.o.timeoutlen = O.timeoutlen -- By default timeoutlen is 1000 ms
|
||||
vim.o.clipboard = "unnamedplus" -- Copy paste between vim and everything else
|
||||
-- vim.g.nvim_tree_disable_netrw = O.nvim_tree_disable_netrw -- enable netrw for remote gx gf support (must be set before plugin's packadd)
|
||||
vim.cmd('filetype plugin on') -- filetype detection
|
||||
-- vim.o.guifont = "JetBrainsMono\\ Nerd\\ Font\\ Mono:h18"
|
||||
-- vim.o.guifont = "Hack\\ Nerd\\ Font\\ Mono"
|
||||
-- vim.o.guifont = "SauceCodePro Nerd Font:h17"
|
||||
vim.o.guifont = "FiraCode Nerd Font:h17"
|
||||
--- HELPERS ---
|
||||
|
||||
|
||||
local cmd = vim.cmd
|
||||
local opt = vim.opt
|
||||
|
||||
|
||||
--- VIM ONLY COMMANDS ---
|
||||
|
||||
|
||||
cmd('filetype plugin on') -- filetype detection
|
||||
cmd('let &titleold="'..TERMINAL..'"')
|
||||
cmd('set inccommand=split') -- show what you are substituting in real time
|
||||
cmd('set iskeyword+=-') -- treat dash as a separate word
|
||||
cmd('set whichwrap+=<,>,[,],h,l') -- move to next line with theses keys
|
||||
if O.transparent_window then
|
||||
cmd('au ColorScheme * hi Normal ctermbg=none guibg=none')
|
||||
end
|
||||
|
||||
--- SETTINGS ---
|
||||
|
||||
|
||||
opt.backup = false -- creates a backup file
|
||||
opt.clipboard = "unnamedplus" -- allows neovim to access the system clipboard
|
||||
opt.cmdheight = 2 -- more space in the neovim command line for displaying messages
|
||||
opt.colorcolumn = "99999" -- fix indentline for now
|
||||
opt.completeopt = {'menuone', 'noselect'}
|
||||
opt.conceallevel = 0 -- so that `` is visible in markdown files
|
||||
opt.fileencoding = "utf-8" -- the encoding written to a file
|
||||
opt.guifont = "monospace:h17" -- the font used in graphical neovim applications
|
||||
opt.hidden = O.hidden_files -- required to keep multiple buffers and open multiple buffers
|
||||
opt.hlsearch = O.hl_search -- highlight all matches on previous search pattern
|
||||
opt.ignorecase = O.ignore_case -- ignore case in search patterns
|
||||
opt.mouse = "a" -- allow the mouse to be used in neovim
|
||||
opt.pumheight = 10 -- pop up menu height
|
||||
opt.showmode = false -- we don't need to see things like -- INSERT -- anymore
|
||||
opt.showtabline = 2 -- always show tabs
|
||||
opt.smartcase = O.smart_case -- smart case
|
||||
opt.smartindent = true -- make indenting smarter again
|
||||
opt.splitbelow = true -- force all horizontal splits to go below current window
|
||||
opt.splitright = true -- force all vertical splits to go to the right of current window
|
||||
opt.swapfile = false -- creates a swapfile
|
||||
opt.termguicolors = true -- set term gui colors (most terminals support this)
|
||||
opt.timeoutlen = O.timeoutlen -- time to wait for a mapped sequence to complete (in milliseconds)
|
||||
opt.title = true -- set the title of window to the value of the titlestring
|
||||
opt.titlestring = "%<%F%=%l/%L - nvim" -- what the title of the window will be set to
|
||||
opt.undodir = CACHE_PATH .. '/undo' -- set an undo directory
|
||||
opt.undofile = true -- enable persisten undo
|
||||
opt.updatetime = 300 -- faster completion
|
||||
opt.writebackup = false -- if a file is being edited by another program (or was written to file while editing with another program), it is not allowed to be edited
|
||||
opt.expandtab = true -- convert tabs to spaces
|
||||
opt.shiftwidth = 4 -- the number of spaces inserted for each indentation
|
||||
opt.shortmess:append("c") -- don't pass messages to |ins-completion-menu|
|
||||
opt.tabstop = 4 -- insert 4 spaces for a tab
|
||||
opt.cursorline = O.cursorline -- highlight the current line
|
||||
opt.number = O.number -- set numbered lines
|
||||
opt.relativenumber = O.relative_number -- set relative numbered lines
|
||||
opt.signcolumn = "yes" -- always show the sign column, otherwise it would shift the text each time
|
||||
opt.wrap = O.wrap_lines -- display lines as one long line
|
||||
|
||||
-- vim.o.guifont = "JetBrains\\ Mono\\ Regular\\ Nerd\\ Font\\ Complete"
|
||||
vim.o.ignorecase = O.ignore_case
|
||||
vim.o.smartcase = O.smart_case
|
||||
|
|
|
@ -18,6 +18,7 @@ O.leader_key = ' '
|
|||
O.ignore_case = true
|
||||
O.smart_case = true
|
||||
O.lushmode = false
|
||||
O.transparent_window = false
|
||||
|
||||
-- After changing plugin config it is recommended to run :PackerCompile
|
||||
O.plugin.hop.active = false
|
||||
|
|
Loading…
Reference in a new issue