diff --git a/init.lua b/init.lua index 2eae5c8b..bd58fb6f 100644 --- a/init.lua +++ b/init.lua @@ -578,7 +578,10 @@ require('lazy').setup({ tsserver = {}, angularls = { config = { - root_dir = require('lspconfig.util').root_pattern('angular.json', 'project.json'), + cwd = function() + return require('lspconfig.util').root_pattern('angular.json', 'project.json') + end, + require_cwd = true, }, }, -- css_variables = {}, @@ -797,24 +800,6 @@ require('lazy').setup({ end, }, - { -- You can easily change to a different colorscheme. - -- Change the name of the colorscheme plugin below, and then - -- change the command in the config to whatever the name of that colorscheme is. - -- - -- If you want to see what colorschemes are already installed, you can use `:Telescope colorscheme`. - 'folke/tokyonight.nvim', - priority = 1000, -- Make sure to load this before all the other start plugins. - init = function() - -- Load the colorscheme here. - -- Like many other themes, this one has different styles, and you could load - -- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'. - vim.cmd.colorscheme 'tokyonight-night' - - -- You can configure highlights by doing something like: - vim.cmd.hi 'Comment gui=none' - end, - }, - -- Highlight todo, notes, etc in comments { 'folke/todo-comments.nvim', event = 'VimEnter', dependencies = { 'nvim-lua/plenary.nvim' }, opts = { signs = false } }, diff --git a/lua/kickstart/plugins/neo-tree.lua b/lua/kickstart/plugins/neo-tree.lua index c793b885..d00171db 100644 --- a/lua/kickstart/plugins/neo-tree.lua +++ b/lua/kickstart/plugins/neo-tree.lua @@ -15,9 +15,49 @@ return { }, opts = { filesystem = { + commands = { + copy_selector = function(state) + local node = state.tree:get_node() + local filepath = node:get_id() + local filename = node.name + local modify = vim.fn.fnamemodify + + local vals = { + ['BASENAME'] = modify(filename, ':r'), + ['EXTENSION'] = modify(filename, ':e'), + ['FILENAME'] = filename, + ['PATH (CWD)'] = modify(filepath, ':.'), + ['PATH (HOME)'] = modify(filepath, ':~'), + ['PATH'] = filepath, + ['URI'] = vim.uri_from_fname(filepath), + } + + local options = vim.tbl_filter(function(val) + return vals[val] ~= '' + end, vim.tbl_keys(vals)) + if vim.tbl_isempty(options) then + vim.notify('No values to copy', vim.log.levels.WARN) + return + end + table.sort(options) + vim.ui.select(options, { + prompt = 'Choose to copy to clipboard:', + format_item = function(item) + return ('%s: %s'):format(item, vals[item]) + end, + }, function(choice) + local result = vals[choice] + if result then + vim.notify(('Copied: `%s`'):format(result)) + vim.fn.setreg('+', result) + end + end) + end, + }, window = { mappings = { ['\\'] = 'close_window', + ['Y'] = 'copy_selector', }, }, },