-- The MIT License (MIT) -- -- Copyright © 2026 Scott E. Graves -- -- Permission is hereby granted, free of charge, to any person obtaining a copy of this software -- and associated documentation files (the “Software”), to deal in the Software without restriction, -- including without limitation the rights to use, copy, modify, merge, publish, distribute, -- sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is -- furnished to do so, subject to the following conditions: -- -- The above copyright notice and this permission notice shall be included in all copies or -- substantial portions of the Software. -- -- THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING -- BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- if NV_DARCULA_ENABLE_COC then return end local symbols = require("darcula.utils.symbols") local utils = require("darcula.utils") vim.diagnostic.config( { float = { border = "rounded", source = "if_many" }, signs = { max = 1, text = { [vim.diagnostic.severity.ERROR] = symbols.line.errors, [vim.diagnostic.severity.WARN] = symbols.line.warnings, [vim.diagnostic.severity.INFO] = symbols.line.hints, [vim.diagnostic.severity.HINT] = symbols.line.hints }, numhl = { [vim.diagnostic.severity.ERROR] = "DiagnosticLineNrError", [vim.diagnostic.severity.WARN] = "DiagnosticLineNrWarn", [vim.diagnostic.severity.INFO] = "DiagnosticLineNrInfo", [vim.diagnostic.severity.HINT] = "DiagnosticLineNrHint" } }, virtual_text = NV_DARCULA_ENABLE_VIRTUAL_TEXT } ) utils.augroup_with_autocmd( "DarculaLspAutoCommands", "LspAttach", "*", function(ev) local client = vim.lsp.get_client_by_id(ev.data.client_id) if not client then return end if client:supports_method("textDocument/codeLens") then vim.lsp.codelens.enable(NV_DARCULA_ENABLE_CODE_LENS, {bufnr = ev.buf}) end if client:supports_method("textDocument/documentHighlight") then local group = utils.augroup_with_autocmd_buffer( "DarculaLspBufferAutoCommands", {"CursorHold", "CursorHoldI"}, ev.buf, vim.lsp.buf.document_highlight ) utils.autocmd_buffer( group, {"CursorMoved", "CursorMovedI"}, ev.buf, vim.lsp.buf.clear_references ) end if client:supports_method("textDocument/inlayHint") then vim.lsp.inlay_hint.enable(NV_DARCULA_ENABLE_INLAY_HINTS) end require("darcula.keymaps").lsp_on_attach(ev) end )