diff --git a/UltiSnips/php.snippets b/UltiSnips/php.snippets index 6b8606f..3dbe876 100644 --- a/UltiSnips/php.snippets +++ b/UltiSnips/php.snippets @@ -1,5 +1,11 @@ extends html +snippet doc "/**" +/** + * $1 + */$0 +endsnippet + snippet pre "
print_r()" echo "
"; print_r($0); @@ -36,6 +42,18 @@ public function $1($2) { } endsnippet +snippet pt "protected function ..." +protected function $1($2) { + $0 +} +endsnippet + +snippet pv "private function ..." +private function $1($2) { + $0 +} +endsnippet + snippet psf "public static function ..." public static function $1($2) { $0 @@ -53,9 +71,25 @@ snippet ''= "'...' => " endsnippet snippet apm "add_post_meta(..." -add_post_meta( 341, 'DEBUG_$1', $0); +add_post_meta( 1, 'DEBUG_$1', $0); endsnippet snippet upm "update_post_meta(..." -update_post_meta( 341, 'DEBUG_$1', $0); +update_post_meta( 1, 'DEBUG_$1', $0); +endsnippet + +snippet sw "switch ..." +switch ($1) { + case $2: + $3; + break; + default: + $0 +} +endsnippet + +snippet cs "case ..." +case $1: + $0; + break; endsnippet diff --git a/lua/init-lsp.lua b/lua/init-lsp.lua index c1e13b1..1f7191d 100644 --- a/lua/init-lsp.lua +++ b/lua/init-lsp.lua @@ -11,92 +11,100 @@ local nvim_lsp = require('lspconfig') -- Use a loop to conveniently call 'setup' on multiple servers and -- map buffer local keybindings when the language server attaches local servers = { - -- npm i -g bash-language-server - -- no formatting support - 'bashls', + -- npm i -g bash-language-server + -- no formatting support + 'bashls', -- npm i -g vscode-langservers-extracted + -- no formatting support + 'cssls', -- npm install -g intelephense + -- suports formatting + 'intelephense', - -- npm i -g vscode-langservers-extracted - -- no formatting support - 'cssls', - - -- npm install -g intelephense - -- suports formatting - 'intelephense', - - -- https://phpactor.readthedocs.io/en/master/usage/standalone.html - 'phpactor', - - -- npm install -g pyright - -- static type checker - 'pyright', - - -- https://github.com/neovim/nvim-lspconfig/wiki - -- 'tailwindcss', - -- npm install -g typescript typescript-language-server - -- supports formatting - 'tsserver', - - -- npm install -g vim-language-server - -- no formatting support - 'vimls', - - -- vue - -- use vetur - - 'yamlls', - -- no formatting support + -- https://phpactor.readthedocs.io/en/master/usage/standalone.html + 'phpactor', -- npm install -g pyright + -- static type checker + 'pyright', -- https://github.com/neovim/nvim-lspconfig/wiki + -- 'tailwindcss', + -- npm install -g typescript typescript-language-server + -- supports formatting + 'tsserver', -- npm install -g vim-language-server + -- no formatting support + 'vimls', -- vue + -- use vetur + 'yamlls' + -- no formatting support } -- Use an on_attach function to only map the following keys -- after the language server attaches to the current buffer local on_attach = function(client, bufnr) - local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end - local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end + local function buf_set_keymap(...) + vim.api.nvim_buf_set_keymap(bufnr, ...) + end + local function buf_set_option(...) + vim.api.nvim_buf_set_option(bufnr, ...) + end - -- Enable completion triggered by- buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') - -- Mappings. - local opts = { noremap=true, silent=true } - -- See `:help vim.lsp.*` for documentation on any of the below functions - buf_set_keymap('n', '[d', ' lua vim.diagnostic.goto_prev({float = {...}}) ', opts) - buf_set_keymap('n', ']d', ' lua vim.diagnostic.goto_next({float = {...}}) ', opts) - buf_set_keymap('n', 'gd', ' lua vim.lsp.buf.definition() ', opts) - buf_set_keymap('n', 'gD', ' lua vim.lsp.buf.declaration() ', opts) - buf_set_keymap('n', 'gi', ' lua vim.lsp.buf.implementation() ', opts) - buf_set_keymap('n', 'gr', ' lua vim.lsp.buf.references() ', opts) - buf_set_keymap('n', 'gl', ' lua vim.diagnostic.open_float(buffer, {{opts}, scope="line"}) ', opts) - buf_set_keymap('n', 'gh', ' lua vim.lsp.buf.hover() ', opts) - buf_set_keymap('n', ' ', ' lua vim.lsp.buf.signature_help() ', opts) - buf_set_keymap('n', ' T', ' lua vim.lsp.buf.type_definition() ', opts) - buf_set_keymap('n', ' l', ' lua vim.diagnostic.setloclist() ', opts) - buf_set_keymap('n', ' q', ' lua vim.diagnostic.setqflist() ', opts) - buf_set_keymap('n', ' ca', ' lua vim.lsp.buf.code_action() ', opts) - buf_set_keymap('n', ' rn', ' lua vim.lsp.buf.rename() ', opts) - buf_set_keymap('n', ' f', ' lua vim.lsp.buf.formatting() ', opts) - -- buf_set_keymap('n', ' wa', ' lua vim.lsp.buf.add_workspace_folder() ', opts) - -- buf_set_keymap('n', ' wr', ' lua vim.lsp.buf.remove_workspace_folder() ', opts) - -- buf_set_keymap('n', ' wl', ' lua print(vim.inspect(vim.lsp.buf.list_workspace_folders())) ', opts) + -- Enable completion triggered by + buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') + -- Mappings. + local opts = {noremap = true, silent = true} + -- See `:help vim.lsp.*` for documentation on any of the below functions + buf_set_keymap('n', '[d', + ' lua vim.diagnostic.goto_prev({float = {...}}) ', + opts) + buf_set_keymap('n', ']d', + ' lua vim.diagnostic.goto_next({float = {...}}) ', + opts) + buf_set_keymap('n', 'gd', ' lua vim.lsp.buf.definition() ', opts) + buf_set_keymap('n', 'gD', ' lua vim.lsp.buf.declaration() ', opts) + buf_set_keymap('n', 'gi', ' lua vim.lsp.buf.implementation() ', opts) + buf_set_keymap('n', 'gr', ' lua vim.lsp.buf.references() ', opts) + buf_set_keymap('n', 'gl', + ' lua vim.diagnostic.open_float(buffer, {{opts}, scope="line"}) ', + opts) + buf_set_keymap('n', 'gh', ' lua vim.lsp.buf.hover() ', opts) + buf_set_keymap('n', ' ', ' lua vim.lsp.buf.signature_help() ', + opts) + buf_set_keymap('n', ' T', + ' lua vim.lsp.buf.type_definition() ', opts) + buf_set_keymap('n', ' l', ' lua vim.diagnostic.setloclist() ', + opts) + buf_set_keymap('n', ' q', ' lua vim.diagnostic.setqflist() ', + opts) + buf_set_keymap('n', ' ca', ' lua vim.lsp.buf.code_action() ', + opts) + buf_set_keymap('n', ' rn', ' lua vim.lsp.buf.rename() ', opts) + buf_set_keymap('n', ' f', ' lua vim.lsp.buf.formatting() ', + opts) + -- buf_set_keymap('n', ' wa', ' lua vim.lsp.buf.add_workspace_folder() ', opts) + -- buf_set_keymap('n', ' wr', ' lua vim.lsp.buf.remove_workspace_folder() ', opts) + -- buf_set_keymap('n', ' wl', ' lua print(vim.inspect(vim.lsp.buf.list_workspace_folders())) ', opts) - if client.name == 'tsserver' or client.name == 'intelephense' then - client.resolved_capabilities.document_formatting = false; - end + if client.name == 'phpactor' then + client.resolved_capabilities.find_references = false; + end - if client.resolved_capabilities.document_formatting then - vim.cmd [[augroup lsp_formatting]] - vim.cmd [[autocmd!]] - vim.cmd [[autocmd BufWritePre :lua vim.lsp.buf.formatting_seq_sync({}, 3000)]] - vim.cmd [[augroup END]] - end + if client.name == 'tsserver' or client.name == 'intelephense' then + client.resolved_capabilities.document_formatting = false; + print(vim.inspect(client.resolved_capabilities)); + end - if client.resolved_capabilities.document_highlight then - vim.cmd [[ + if client.resolved_capabilities.document_formatting then + vim.cmd [[augroup lsp_formatting]] + vim.cmd [[autocmd!]] + vim.cmd [[autocmd BufWritePre :lua vim.lsp.buf.formatting_seq_sync({}, 3000)]] + vim.cmd [[augroup END]] + end + + if client.resolved_capabilities.document_highlight then + vim.cmd [[ augroup lsp_document_highlight autocmd! * autocmd CursorHold lua vim.lsp.buf.document_highlight() autocmd CursorMoved lua vim.lsp.buf.clear_references() augroup END ]] - end + end end local capabilities = vim.lsp.protocol.make_client_capabilities() @@ -104,13 +112,11 @@ capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities) capabilities.textDocument.completion.completionItem.snippetSupport = true for _, lsp in ipairs(servers) do - nvim_lsp[lsp].setup { - on_attach = on_attach, - capabilities = capabilities, - flags = { - debounce_text_changes = 150, + nvim_lsp[lsp].setup { + on_attach = on_attach, + capabilities = capabilities, + flags = {debounce_text_changes = 150} } - } end local runtime_path = vim.split(package.path, ';') @@ -118,80 +124,67 @@ table.insert(runtime_path, "lua/?.lua") table.insert(runtime_path, "lua/?/init.lua") require'lspconfig'.sumneko_lua.setup { - settings = { - Lua = { - runtime = { - -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim) - version = 'LuaJIT', - -- Setup your lua path - path = runtime_path, - }, - diagnostics = { - -- Get the language server to recognize the `vim` global - globals = {'vim'}, - }, - workspace = { - -- Make the server aware of Neovim runtime files - library = vim.api.nvim_get_runtime_file("", true), - }, - -- Do not send telemetry data containing a randomized but unique identifier - telemetry = { - enable = false, - }, - }, - }, + settings = { + Lua = { + runtime = { + -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim) + version = 'LuaJIT', + -- Setup your lua path + path = runtime_path + }, + diagnostics = { + -- Get the language server to recognize the `vim` global + globals = {'vim'} + }, + workspace = { + -- Make the server aware of Neovim runtime files + library = vim.api.nvim_get_runtime_file("", true) + }, + -- Do not send telemetry data containing a randomized but unique identifier + telemetry = {enable = false} + } + } } -- null-ls local null_ls = require("null-ls") local sources = { - null_ls.builtins.formatting.prettierd, - - -- phpcs - standards wordpress - null_ls.builtins.diagnostics.phpcs.with({ - condition = function(utils) - return utils.root_has_file({ "vendor/bin/phpcs" }) - end, - command = "vendor/bin/phpcs", - args = { "--standard=WordPress", "--report=json", "-s", "-" }, - }), - -- phpcbf - standards wordpress - null_ls.builtins.formatting.phpcbf.with({ - condition = function(utils) - return utils.root_has_file({ "vendor/bin/phpcbf" }) - end, - command = "vendor/bin/phpcbf", - args = { "--standard=WordPress", "-" }, - }), - - -- phpcs - null_ls.builtins.diagnostics.phpcs.with({ - condition = function(utils) - return not utils.root_has_file({ "vendor/bin/phpcs" }) - end, - args = { "--standard=PSR12", "--report=json", "-s", "-" }, - }), - -- phpcbf - null_ls.builtins.formatting.phpcbf.with({ - condition = function(utils) - return not utils.root_has_file({ "vendor/bin/phpcbf" }) - end, - args = { "--standard=PSR12", "--report=json", "-s", "-" }, - }), - - -- black - null_ls.builtins.formatting.black, - -- shellcheck, - null_ls.builtins.diagnostics.shellcheck, - -- flake8 - null_ls.builtins.diagnostics.flake8, - -- luaFormatter - null_ls.builtins.formatting.lua_format, + null_ls.builtins.formatting.prettierd, -- phpcs - standards wordpress + -- in project directory must + -- composer require friendsofphp/php-cs-fixer + -- as in https://github.com/FriendsOfPHP/PHP-CS-Fixer + -- I think os anyway - not totally sure any more + null_ls.builtins.diagnostics.phpcs.with({ + condition = function(utils) + return utils.root_has_file({"vendor/bin/phpcs"}) + end, + command = "vendor/bin/phpcs", + args = {"--standard=WordPress", "--report=json", "-s", "-"} + }), -- phpcbf - standards wordpress + null_ls.builtins.formatting.phpcbf.with({ + condition = function(utils) + return utils.root_has_file({"vendor/bin/phpcbf"}) + end, + command = "vendor/bin/phpcbf", + args = {"--standard=WordPress", "-"} + }), -- phpcs + null_ls.builtins.diagnostics.phpcs.with({ + condition = function(utils) + return not utils.root_has_file({"vendor/bin/phpcs"}) + end, + args = {"--standard=PSR12", "--report=json", "-s", "-"} + }), -- phpcbf + null_ls.builtins.formatting.phpcbf.with({ + condition = function(utils) + return not utils.root_has_file({"vendor/bin/phpcbf"}) + end, + args = {"--standard=PSR12", "--report=json", "-s", "-"} + }), -- black + null_ls.builtins.formatting.black, -- shellcheck, + null_ls.builtins.diagnostics.shellcheck, -- flake8 + null_ls.builtins.diagnostics.flake8, -- luaFormatter + null_ls.builtins.formatting.lua_format } -null_ls.setup({ - sources = sources, - on_attach = on_attach, -}) - +null_ls.setup({sources = sources, on_attach = on_attach}) diff --git a/spell/en.utf-8.add b/spell/en.utf-8.add index d3063d6..d908be4 100644 --- a/spell/en.utf-8.add +++ b/spell/en.utf-8.add @@ -200,3 +200,4 @@ LightInTheBox Etsy Strapi whitepapers +LXD diff --git a/spell/en.utf-8.add.spl b/spell/en.utf-8.add.spl index 1d2b013..6de1f8c 100644 Binary files a/spell/en.utf-8.add.spl and b/spell/en.utf-8.add.spl differ