From 7a0a7554ec9e4b4b2d90b964a41c2c64590abd21 Mon Sep 17 00:00:00 2001 From: AntoXa PRO Date: Fri, 26 Jan 2024 14:04:29 +0300 Subject: [PATCH] clang --- nvim/.config/nvim/lua/axp/base.lua | 2 +- nvim/.config/nvim/lua/axp/plugins/lsp.lua | 55 ++--- .../lua/axp/plugins/null-ls/.clang-format | 225 ++++++++++++++++++ .../nvim/lua/axp/plugins/null-ls/init.lua | 23 +- .../nvim/lua/axp/plugins/treesitter.lua | 7 +- 5 files changed, 278 insertions(+), 34 deletions(-) create mode 100644 nvim/.config/nvim/lua/axp/plugins/null-ls/.clang-format diff --git a/nvim/.config/nvim/lua/axp/base.lua b/nvim/.config/nvim/lua/axp/base.lua index a0224b6..f756da3 100644 --- a/nvim/.config/nvim/lua/axp/base.lua +++ b/nvim/.config/nvim/lua/axp/base.lua @@ -10,7 +10,7 @@ vim.o.swapfile = false -- Lines. vim.o.number = true vim.o.relativenumber = true -vim.o.colorcolumn = '79' +vim.o.colorcolumn = '80' vim.o.signcolumn = 'yes' vim.o.cursorline = true vim.o.guicursor = '' diff --git a/nvim/.config/nvim/lua/axp/plugins/lsp.lua b/nvim/.config/nvim/lua/axp/plugins/lsp.lua index 818f032..936ffb9 100644 --- a/nvim/.config/nvim/lua/axp/plugins/lsp.lua +++ b/nvim/.config/nvim/lua/axp/plugins/lsp.lua @@ -12,26 +12,17 @@ if (not status_mason_lspconfig) then return end -- Config servers. local servers = { - lua_ls = { - Lua = { - diagnostics = { - globals = { 'vim' } - }, - workspace = { - library = vim.api.nvim_get_runtime_file('', true), - checkThirdParty = false - } - }, - }, - bashls = {}, - clangd = {}, - cmake = {}, - html = {}, - tsserver = {}, - volar = {}, - dockerls = {}, - jsonls = {}, - yamlls = {} + 'lua_ls', + 'bashls', + 'clangd', + -- 'clang-format', + 'cmake', + 'html', + 'tsserver', + 'volar', + 'dockerls', + 'jsonls', + 'yamlls' } -- This function gets run when an LSP connects to a particular buffer. @@ -46,11 +37,6 @@ local on_attach = function(_, bufnr) vim.keymap.set('n', 'D', vim.lsp.buf.type_definition) vim.keymap.set('n', 'K', vim.lsp.buf.hover) vim.keymap.set('n', '', vim.lsp.buf.signature_help) - - -- Create a command `:Format` local to the LSP buffer - vim.api.nvim_buf_create_user_command(bufnr, 'Format', function(_) - vim.lsp.buf.format() - end, { desc = 'Format current buffer with LSP' }) end -- nvim-cmp supports additional completion capabilities, so broadcast that to servers @@ -62,7 +48,7 @@ mason.setup {} -- Mason lsp installer. mason_lspconfig.setup { - ensure_installed = vim.tbl_keys(servers), + ensure_installed = servers, } -- Mason configure servers. @@ -72,9 +58,24 @@ mason_lspconfig.setup_handlers { local config = { on_attach = on_attach, capabilities = capabilities, - settings = servers[server_name], + settings = {} } + if server_name == 'lua_ls' then + config.settings = { + Lua = { + diagnostics = { + globals = { 'vim' } + }, + workspace = { + library = vim.api.nvim_get_runtime_file('', true), + checkThirdParty = false + } + } + } + lspconfig[server_name].setup(config) + end + lspconfig[server_name].setup(config) end } diff --git a/nvim/.config/nvim/lua/axp/plugins/null-ls/.clang-format b/nvim/.config/nvim/lua/axp/plugins/null-ls/.clang-format new file mode 100644 index 0000000..4b8d5fb --- /dev/null +++ b/nvim/.config/nvim/lua/axp/plugins/null-ls/.clang-format @@ -0,0 +1,225 @@ +--- +Language: Cpp +# BasedOnStyle: LLVM +AccessModifierOffset: -2 +AlignAfterOpenBracket: Align +AlignArrayOfStructures: None +AlignConsecutiveAssignments: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false + PadOperators: true +AlignConsecutiveBitFields: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false + PadOperators: false +AlignConsecutiveDeclarations: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false + PadOperators: false +AlignConsecutiveMacros: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false + PadOperators: false +AlignEscapedNewlines: Right +AlignOperands: Align +AlignTrailingComments: + Kind: Always + OverEmptyLines: 0 +AllowAllArgumentsOnNextLine: true +AllowAllParametersOfDeclarationOnNextLine: true +AllowShortBlocksOnASingleLine: Never +AllowShortCaseLabelsOnASingleLine: false +AllowShortEnumsOnASingleLine: true +AllowShortFunctionsOnASingleLine: All +AllowShortIfStatementsOnASingleLine: Never +AllowShortLambdasOnASingleLine: All +AllowShortLoopsOnASingleLine: false +AlwaysBreakAfterDefinitionReturnType: None +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: false +AlwaysBreakTemplateDeclarations: MultiLine +AttributeMacros: + - __capability +BinPackArguments: true +BinPackParameters: true +BitFieldColonSpacing: Both +BraceWrapping: + AfterCaseLabel: false + AfterClass: false + AfterControlStatement: Never + AfterEnum: false + AfterExternBlock: false + AfterFunction: false + AfterNamespace: false + AfterObjCDeclaration: false + AfterStruct: false + AfterUnion: false + BeforeCatch: false + BeforeElse: false + BeforeLambdaBody: false + BeforeWhile: false + IndentBraces: false + SplitEmptyFunction: true + SplitEmptyRecord: true + SplitEmptyNamespace: true +BreakAfterAttributes: Never +BreakAfterJavaFieldAnnotations: false +BreakArrays: true +BreakBeforeBinaryOperators: None +BreakBeforeConceptDeclarations: Always +BreakBeforeBraces: Attach +BreakBeforeInlineASMColon: OnlyMultiline +BreakBeforeTernaryOperators: true +BreakConstructorInitializers: BeforeColon +BreakInheritanceList: BeforeColon +BreakStringLiterals: true +ColumnLimit: 80 +CommentPragmas: '^ IWYU pragma:' +CompactNamespaces: false +ConstructorInitializerIndentWidth: 4 +ContinuationIndentWidth: 4 +Cpp11BracedListStyle: true +DerivePointerAlignment: false +DisableFormat: false +EmptyLineAfterAccessModifier: Never +EmptyLineBeforeAccessModifier: LogicalBlock +ExperimentalAutoDetectBinPacking: false +FixNamespaceComments: true +ForEachMacros: + - foreach + - Q_FOREACH + - BOOST_FOREACH +IfMacros: + - KJ_IF_MAYBE +IncludeBlocks: Preserve +IncludeCategories: + - Regex: '^"(llvm|llvm-c|clang|clang-c)/' + Priority: 2 + SortPriority: 0 + CaseSensitive: false + - Regex: '^(<|"(gtest|gmock|isl|json)/)' + Priority: 3 + SortPriority: 0 + CaseSensitive: false + - Regex: '.*' + Priority: 1 + SortPriority: 0 + CaseSensitive: false +IncludeIsMainRegex: '(Test)?$' +IncludeIsMainSourceRegex: '' +IndentAccessModifiers: false +IndentCaseBlocks: false +IndentCaseLabels: false +IndentExternBlock: AfterExternBlock +IndentGotoLabels: true +IndentPPDirectives: None +IndentRequiresClause: true +IndentWidth: 2 +IndentWrappedFunctionNames: false +InsertBraces: false +InsertNewlineAtEOF: false +InsertTrailingCommas: None +IntegerLiteralSeparator: + Binary: 0 + BinaryMinDigits: 0 + Decimal: 0 + DecimalMinDigits: 0 + Hex: 0 + HexMinDigits: 0 +JavaScriptQuotes: Leave +JavaScriptWrapImports: true +KeepEmptyLinesAtTheStartOfBlocks: true +LambdaBodyIndentation: Signature +LineEnding: DeriveLF +MacroBlockBegin: '' +MacroBlockEnd: '' +MaxEmptyLinesToKeep: 1 +NamespaceIndentation: None +ObjCBinPackProtocolList: Auto +ObjCBlockIndentWidth: 2 +ObjCBreakBeforeNestedBlockParam: true +ObjCSpaceAfterProperty: false +ObjCSpaceBeforeProtocolList: true +PackConstructorInitializers: BinPack +PenaltyBreakAssignment: 2 +PenaltyBreakBeforeFirstCallParameter: 19 +PenaltyBreakComment: 300 +PenaltyBreakFirstLessLess: 120 +PenaltyBreakOpenParenthesis: 0 +PenaltyBreakString: 1000 +PenaltyBreakTemplateDeclaration: 10 +PenaltyExcessCharacter: 1000000 +PenaltyIndentedWhitespace: 0 +PenaltyReturnTypeOnItsOwnLine: 60 +PointerAlignment: Right +PPIndentWidth: -1 +QualifierAlignment: Leave +ReferenceAlignment: Pointer +ReflowComments: true +RemoveBracesLLVM: false +RemoveSemicolon: false +RequiresClausePosition: OwnLine +RequiresExpressionIndentation: OuterScope +SeparateDefinitionBlocks: Leave +ShortNamespaceLines: 1 +SortIncludes: CaseSensitive +SortJavaStaticImport: Before +SortUsingDeclarations: LexicographicNumeric +SpaceAfterCStyleCast: false +SpaceAfterLogicalNot: false +SpaceAfterTemplateKeyword: true +SpaceAroundPointerQualifiers: Default +SpaceBeforeAssignmentOperators: true +SpaceBeforeCaseColon: false +SpaceBeforeCpp11BracedList: false +SpaceBeforeCtorInitializerColon: true +SpaceBeforeInheritanceColon: true +SpaceBeforeParens: ControlStatements +SpaceBeforeParensOptions: + AfterControlStatements: true + AfterForeachMacros: true + AfterFunctionDefinitionName: false + AfterFunctionDeclarationName: false + AfterIfMacros: true + AfterOverloadedOperator: false + AfterRequiresInClause: false + AfterRequiresInExpression: false + BeforeNonEmptyParentheses: false +SpaceBeforeRangeBasedForLoopColon: true +SpaceBeforeSquareBrackets: false +SpaceInEmptyBlock: false +SpaceInEmptyParentheses: false +SpacesBeforeTrailingComments: 1 +SpacesInAngles: Never +SpacesInConditionalStatement: false +SpacesInContainerLiterals: true +SpacesInCStyleCastParentheses: false +SpacesInLineCommentPrefix: + Minimum: 1 + Maximum: -1 +SpacesInParentheses: false +SpacesInSquareBrackets: false +Standard: Latest +StatementAttributeLikeMacros: + - Q_EMIT +StatementMacros: + - Q_UNUSED + - QT_REQUIRE_VERSION +TabWidth: 2 +UseTab: Always +WhitespaceSensitiveMacros: + - BOOST_PP_STRINGIZE + - CF_SWIFT_NAME + - NS_SWIFT_NAME + - PP_STRINGIZE + - STRINGIZE +... + diff --git a/nvim/.config/nvim/lua/axp/plugins/null-ls/init.lua b/nvim/.config/nvim/lua/axp/plugins/null-ls/init.lua index b409aa3..fe970ee 100644 --- a/nvim/.config/nvim/lua/axp/plugins/null-ls/init.lua +++ b/nvim/.config/nvim/lua/axp/plugins/null-ls/init.lua @@ -2,12 +2,29 @@ local status, null_ls = pcall(require, 'null-ls') if (not status) then return end -local prettier_config = vim.fn.stdpath('config') .. '/lua/axp/plugins/null-ls/.prettierrc' local formatting = null_ls.builtins.formatting +local prettier_config = vim.fn.stdpath('config') .. '/lua/axp/plugins/null-ls/.prettierrc' +local clang_format_config = vim.fn.stdpath('config') .. '/lua/axp/plugins/null-ls/.clang-format' -- Init. null_ls.setup { sources = { - formatting.prettier.with({ extra_args = { "--config", prettier_config } }) - } + formatting.clang_format.with({ + extra_args = { + '--assume-filename=' .. clang_format_config + } + }), + formatting.prettier.with({ + extra_args = { '--config', prettier_config } + }) + }, + on_attach = function (client, bufnr) + if client.supports_method('textDocument/formatting') then + -- Create a command `:Format` local to the LSP buffer + vim.api.nvim_buf_create_user_command(bufnr, 'Format', function(_) + vim.lsp.buf.format() + end, { desc = 'Format current buffer with LSP' }) + print(clang_format_config) + end + end } diff --git a/nvim/.config/nvim/lua/axp/plugins/treesitter.lua b/nvim/.config/nvim/lua/axp/plugins/treesitter.lua index 9759f47..97e2224 100644 --- a/nvim/.config/nvim/lua/axp/plugins/treesitter.lua +++ b/nvim/.config/nvim/lua/axp/plugins/treesitter.lua @@ -3,9 +3,10 @@ if (not status) then return end ts.setup { ensure_installed = { - 'dockerfile', - 'lua', 'vim', + 'lua', + 'cmake', + 'cpp', 'bash', 'javascript', 'typescript', @@ -17,11 +18,11 @@ ts.setup { 'css', 'scss', 'python', + 'dockerfile', 'regex', 'markdown', 'yaml', 'astro', - 'cmake' }, ignore_install = {}, modules = {},