Compare commits
6 commits
7f3dd527af
...
b6222e3682
| Author | SHA1 | Date | |
|---|---|---|---|
| b6222e3682 | |||
| 6d801bcb4e | |||
| 6adb1f506f | |||
| 0dc654ae2e | |||
| d174718477 | |||
| 747a1fe584 |
7 changed files with 73 additions and 47 deletions
33
files/tmux.sh
Executable file
33
files/tmux.sh
Executable file
|
|
@ -0,0 +1,33 @@
|
|||
#!/bin/bash
|
||||
|
||||
session_name=${PWD##*/}
|
||||
project_directory="$HOME/development/$session_name"
|
||||
enable_formatting=""
|
||||
|
||||
tmux has-session -t $session_name
|
||||
|
||||
if [ $? != 0 ];
|
||||
then
|
||||
tmux new-session \
|
||||
-c $project_directory \
|
||||
-ds $session_name \
|
||||
-e "project_dir=$project_directory"
|
||||
|
||||
# FIRST WINDOW
|
||||
tmux send-keys -t $session_name:0 'source ./env/bin/activate' C-m
|
||||
tmux send-keys -t $session_name:0 'nvim' C-m
|
||||
|
||||
# SECOND WINDOW
|
||||
tmux new-window -t $session_name
|
||||
|
||||
# THIRD WINDOW
|
||||
tmux new-window -t $session_name
|
||||
|
||||
# FOURTH WINDOW
|
||||
tmux new-window -t $session_name
|
||||
|
||||
# SELECT DEFAULT PANE AFTER OPENING
|
||||
tmux select-window -t $session_name:0
|
||||
fi
|
||||
|
||||
tmux attach -t $session_name
|
||||
|
|
@ -29,7 +29,7 @@ language_servers:
|
|||
|
||||
- package: lua-language-server
|
||||
server_name: 'lua_ls'
|
||||
auto_setup: true
|
||||
auto_setup: false
|
||||
|
||||
- package: yaml-language-server
|
||||
server_name: 'yamlls'
|
||||
|
|
|
|||
|
|
@ -120,3 +120,6 @@
|
|||
|
||||
- src: 'templates/nvim/lua/filetype.lua.j2'
|
||||
dest: '{{ xdg_config_dir }}/nvim/lua/_filetype.lua'
|
||||
|
||||
- src: 'templates/nvim/lua/formatting.lua.j2'
|
||||
dest: '{{ xdg_config_dir }}/nvim/lua/formatting.lua'
|
||||
|
|
|
|||
|
|
@ -50,4 +50,5 @@ autocorrect = prompt
|
|||
navigate = true
|
||||
hyperlinks = true
|
||||
line-numbers = true
|
||||
map-styles = bold purple => syntax magenta, bold cyan => syntax blue, bold yellow => syntax yellow
|
||||
{% endif %}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
-- {{ ansible_managed }}
|
||||
|
||||
-- TODO: load environment vars from .env files
|
||||
require('options')
|
||||
require('_filetype')
|
||||
require('colorscheme')
|
||||
|
|
@ -12,3 +11,4 @@ require('indent-blankline')
|
|||
require('_nvim-tree')
|
||||
require('lua-line')
|
||||
require('_source-link')
|
||||
require('formatting')
|
||||
|
|
|
|||
22
templates/nvim/lua/formatting.lua.j2
Normal file
22
templates/nvim/lua/formatting.lua.j2
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
local enable_formatting = os.getenv("enable_formatting") == 'true';
|
||||
|
||||
if (enable_formatting) then
|
||||
vim.api.nvim_create_autocmd('LspAttach', {
|
||||
group = vim.api.nvim_create_augroup('lsp', { clear = true }),
|
||||
callback = function(args)
|
||||
local client = vim.lsp.get_client_by_id(args.data.client_id)
|
||||
|
||||
if client.server_capabilities.documentFormattingProvider then
|
||||
vim.api.nvim_create_autocmd('BufWritePre', {
|
||||
buffer = args.buf,
|
||||
callback = function()
|
||||
vim.lsp.buf.format {
|
||||
async = false,
|
||||
id = args.data.client_id
|
||||
}
|
||||
end,
|
||||
})
|
||||
end
|
||||
end
|
||||
})
|
||||
end
|
||||
|
|
@ -95,6 +95,18 @@ nvim_lsp.jsonls.setup {
|
|||
capabilities = snippet_capabilities,
|
||||
}
|
||||
|
||||
nvim_lsp.lua_ls.setup {
|
||||
on_attach = on_attach,
|
||||
capabilities = snippet_capabilities,
|
||||
settings = {
|
||||
Lua = {
|
||||
diagnostics = {
|
||||
globals = { 'vim' }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
{% endif %}
|
||||
nvim_lsp.yamlls.setup {
|
||||
on_attach = on_attach,
|
||||
|
|
@ -175,48 +187,3 @@ vim.diagnostic.config {
|
|||
end
|
||||
},
|
||||
}
|
||||
|
||||
local enable_formatting = os.getenv("ENABLE_FORMATTING")
|
||||
|
||||
-- format buffers before saving for specific LSPs
|
||||
if (enable_formatting) then
|
||||
local excluded_clients = { 'pyright' }
|
||||
|
||||
vim.api.nvim_create_autocmd('LspAttach', {
|
||||
group = vim.api.nvim_create_augroup('lsp', { clear = true }),
|
||||
callback = function(args)
|
||||
vim.api.nvim_create_autocmd('BufWritePre', {
|
||||
buffer = args.buf,
|
||||
callback = function()
|
||||
local formatting_clients = vim.lsp.get_clients {
|
||||
bufnr = args.buf,
|
||||
method = 'textDocument/formatting'
|
||||
}
|
||||
|
||||
local filtered_clients = {}
|
||||
|
||||
for _, client in pairs(formatting_clients) do
|
||||
if vim.list_contains(excluded_clients, client.name) then
|
||||
goto skip
|
||||
end
|
||||
|
||||
table.insert(filtered_clients, client.name)
|
||||
::skip::
|
||||
end
|
||||
|
||||
if #filtered_clients == 0 then
|
||||
return
|
||||
end
|
||||
|
||||
vim.lsp.buf.format {
|
||||
filter = function(client)
|
||||
return vim.list_contains(filtered_clients, client.name)
|
||||
end,
|
||||
async = false,
|
||||
id = args.data.client_id
|
||||
}
|
||||
end,
|
||||
})
|
||||
end
|
||||
})
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue