-- 参考: https://zenn.dev/nazo6/articles/c2f16b07798bab -- LSPサーバアタッチ時の処理 -- vim.api.nvim_create_autocmd("LspAttach", { -- callback = function(ctx) -- -- note: open_float は d がデフォルトでマッピングされているのでそれを使う -- local set = vim.keymap.set -- set("n", "gD", "lua vim.lsp.buf.declaration()", { buffer = true }) -- set("n", "gd", "lua vim.lsp.buf.definition()", { buffer = true }) -- set("n", "K", "lua vim.lsp.buf.hover()", { buffer = true }) -- set("n", "gi", "lua vim.lsp.buf.implementation()", { buffer = true }) -- set("n", "", "lua vim.lsp.buf.signature_help()", { buffer = true }) -- set("n", "wa", "lua vim.lsp.buf.add_workspace_folder()", { buffer = true }) -- set("n", "wr", "lua vim.lsp.buf.remove_workspace_folder()", { buffer = true }) -- set("n", "wl", "lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))", { buffer = true }) -- set("n", "D", "lua vim.lsp.buf.type_definition()", { buffer = true }) -- set("n", "rn", "lua vim.lsp.buf.rename()", { buffer = true }) -- set("n", "ca", "lua vim.lsp.buf.code_action()", { buffer = true }) -- set("n", "gr", "lua vim.lsp.buf.references()", { buffer = true }) -- set("n", "q", "lua vim.lsp.diagnostic.set_loclist()", { buffer = true }) -- set("n", "f", "lua vim.lsp.buf.formatting()", { buffer = true }) -- end, -- }) -- プラグインの設定 require("mason").setup() require("mason-lspconfig").setup() -- lspのハンドラーに設定 capabilities = require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities()) -- lspの設定後に追加 vim.opt.completeopt = "menu,menuone,noselect" local cmp = require"cmp" cmp.setup({ snippet = { expand = function(args) require("luasnip").lsp_expand(args.body) end, }, mapping = cmp.mapping.preset.insert({ [""] = cmp.mapping.select_prev_item(), [""] = cmp.mapping.select_next_item(), [""] = cmp.mapping.scroll_docs(-4), [""] = cmp.mapping.scroll_docs(4), [""] = cmp.mapping.complete(), [""] = cmp.mapping.close(), [""] = cmp.mapping.confirm({ select = true }), }), sources = cmp.config.sources({ --{ name = "copilot" }, { name = "nvim_lsp" }, }, { { name = "buffer" }, { name = "emoji" }, }), }) -- Set configuration for specific filetype. cmp.setup.filetype('gitcommit', { sources = cmp.config.sources({ { name = 'git' }, -- You can specify the `git` source if [you were installed it](https://github.com/petertriho/cmp-git). }, { { name = 'buffer' }, }) }) -- jsonls のセットアップ(スキーマは各ファイルの $schema に委ねる) local lspconfig = require("lspconfig") lspconfig.jsonls.setup({ capabilities = capabilities, }) -- CopilotChat の設定 -- local chat = require("CopilotChat") -- chat.setup({ -- window = { -- layout = "float", -- relative = 'editor', -- 'editor', 'win', 'cursor', 'mouse' -- border = 'single', -- 'none', single', 'double', 'rounded', 'solid', 'shadow' -- width = 0.8, -- fractional width of parent -- height = 0.6, -- fractional height of parent -- row = nil, -- row position of the window, default is centered -- col = nil, -- column position of the window, default is centered -- title = 'Copilot Chat', -- title of chat window -- footer = nil, -- footer of chat window -- zindex = 1, -- determines if window is on top or below other floating windows -- }, -- }) -- scnvim (SuperCollider 用設定) -- local scnvim = require "scnvim" -- local map = scnvim.map -- local map_expr = scnvim.map_expr -- scnvim.setup({ -- sclang = { -- cmd = 'C:/Program Files/SuperCollider-3.13.0/sclang.exe' -- }, -- keymaps = { -- [''] = map('editor.send_line', {'i', 'n'}), -- [''] = { -- map('editor.send_block', {'i', 'n'}), -- map('editor.send_selection', 'x'), -- }, -- [''] = map('postwin.toggle'), -- [''] = map('postwin.toggle', 'i'), -- [''] = map('postwin.clear', {'n', 'i'}), -- [''] = map('signature.show', {'n', 'i'}), -- [''] = map('sclang.hard_stop', {'n', 'x', 'i'}), -- ['st'] = map('sclang.start'), -- ['sk'] = map('sclang.recompile'), -- [''] = map_expr('s.boot'), -- [''] = map_expr('s.meter'), -- }, -- editor = { -- highlight = { -- color = 'IncSearch', -- }, -- }, -- postwin = { -- float = { -- enabled = true, -- }, -- }, -- })