Merge branch 'master' of github.com:ChristianChiarulli/LunarVim into stable

This commit is contained in:
christianchiarulli 2021-07-05 16:26:31 -04:00
commit 2048597164
76 changed files with 3161 additions and 3077 deletions

9
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View file

@ -0,0 +1,9 @@
blank_issues_enabled: true
contact_links:
- name: Matrix community
url: https://matrix.to/#/+atmachine:matrix
about: Please ask and answer questions on Matrix.
- name: Discord community
url: https://discord.gg/Xb9B4Ny
about: Please ask and answer questions on Discord.

View file

@ -52,9 +52,12 @@ body:
- type: checkboxes
id: checks
attributes:
label: I have read
label: I have
options:
- label: The readme
- label: Read the readme
required: true
- label: The wiki
- label: Read the wiki
required: true
- label: Searched for similar issues
required: true

View file

@ -0,0 +1,80 @@
name: LSP Issue
description: File a LSP related bug report
title: "[Bug]: "
labels: [bug, lsp]
# assignees:
# - ChristianChiarulli
body:
- type: markdown
attributes:
value: |
Thank you for helping us improve !
- type: textarea
id: problem-description
attributes:
label: Problem description
description: Also tell us, what did you expect to happen?
placeholder: |
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
validations:
required: true
- type: checkboxes
id: generic-checks
attributes:
label: Check the following
options:
- label: I am in a git managed directory
required: true
- label: I restarted Neovim after running :LspInstall
required: true
- label: I have a valid language configuration (~/.config/nvim/ftplugin/)
required: true
- label: I checked the options (~/.config/nvim/lv-config.lua)
required: true
- label: The programs specified by the config are installed
- type: input
id: lunar-vim-version
attributes:
label: LunarVim version
validations:
required: true
- type: input
id: nvim-version
attributes:
label: Neovim version (>= 0.5)
placeholder: nvim --version
validations:
required: true
- type: textarea
id: logs
attributes:
label: Relevant log output
placeholder: |
:echo &ft
:LspInfo
:LspStart <language>
:messages
:checkhealth
grep ERROR ~/.cache/nvim/lsp.log
render: shell
- type: textarea
id: screenshots
attributes:
label: Screenshots
description: If applicable, add screenshots to help explain your problem
- type: checkboxes
id: documentation-checks
attributes:
label: I have
options:
- label: Read the readme
required: true
- label: Read the wiki
required: true
- label: Searched for similar issues
required: true

1
.gitignore vendored
View file

@ -19,3 +19,4 @@ eclipse.jdt.ls/
spell/
nv-settings.lua
lv-settings.lua
.stylua.toml

View file

@ -110,5 +110,9 @@ cd ~/.config/nvim && git pull
- [Twitter](https://twitter.com/chrisatmachine)
## Testimonials
> "I have the processing power of a potato with 4 gb of ram and LunarVim runs perfectly."
> - @juanCortelezzi, LunarVim user.

View file

@ -1,263 +1,259 @@
"Theme built with Lush.nvim, exported at Fri Jul 2 13:45:55 2021
highlight SpecialKey guifg=#5486C0 guibg=NONE guisp=NONE gui=bold blend=NONE
highlight Title guifg=#5486C0 guibg=NONE guisp=NONE gui=bold blend=NONE
highlight! link Substitute Search
highlight MoreMsg guifg=#64A6C4 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight Type guifg=#BF85C1 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link StorageClass Type
highlight! link Typedef Type
highlight! link Statement Keyword
highlight! link Repeat Keyword
highlight! link Label Keyword
highlight! link Exception Keyword
highlight! link Macro PreProc
highlight! link PreCondit PreProc
highlight Special guifg=#C67158 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link SpecialChar Character
highlight Tag guifg=#7299EE guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight Debug guifg=#AF4B57 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight Delimiter guifg=#9092A2 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight SpecialComment guifg=#858585 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight Underlined guifg=NONE guibg=NONE guisp=NONE gui=underline blend=NONE
highlight Italic guifg=NONE guibg=NONE guisp=NONE gui=italic blend=NONE
highlight Ignore guifg=#C7C8D1 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight Normal guifg=#C7C8D1 guibg=#212121 guisp=NONE gui=NONE blend=NONE
highlight EndOfBuffer guifg=#212121 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight CursorLine guifg=NONE guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight VertSplit guifg=#393E46 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link CursorColumn CursorLine
highlight TelescopeSelection guifg=#64A6C4 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight TelescopeMatching guifg=#AF4B57 guibg=NONE guisp=NONE gui=bold blend=NONE
highlight TelescopeBorder guifg=#858585 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight NvimTreeNormal guifg=#B1B3BE guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight NvimTreeGitDelete guifg=#93151B guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight NvimTreeVertSplit guifg=#292929 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight TabLine guifg=#C7C8D1 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight TabLineFill guifg=#C7C8D1 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight! link LspDiagnosticsError LspDiagnosticsSignError
highlight! link LspDiagnosticsWarning LspDiagnosticsSignWarning
highlight! link LspDiagnosticsInformation LspDiagnosticsSignInformation
highlight! link LspDiagnosticsHint LspDiagnosticsSignHint
highlight BufferVisible guifg=NONE guibg=#212121 guisp=NONE gui=NONE blend=NONE
highlight BufferVisibleIndex guifg=NONE guibg=#212121 guisp=NONE gui=NONE blend=NONE
highlight BufferVisibleMod guifg=#FFCC66 guibg=#212121 guisp=NONE gui=NONE blend=NONE
highlight BufferVisibleSign guifg=#FFCC66 guibg=#212121 guisp=NONE gui=NONE blend=NONE
highlight BufferVisibleTarget guifg=#AF4B57 guibg=#212121 guisp=NONE gui=bold blend=NONE
highlight BufferInactiveIndex guifg=#858585 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight BufferInactiveMod guifg=#FFCC66 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight BufferInactiveSign guifg=#858585 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight BufferInactiveTarget guifg=#AF4B57 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight! link htmlH1 Title
highlight mkdLink guifg=#64A6C4 guibg=NONE guisp=NONE gui=underline blend=NONE
highlight mkdLineBreak guifg=NONE guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight mkdHeading guifg=#C7C8D1 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link TSKeyword Keyword
highlight mkdUnderline guifg=#858585 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link TSKeywordFunction Keyword
highlight markdownCode guifg=#C67158 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link markdownLinkTextDelimiter Delimiter
highlight! link TSLabel Label
highlight! link TSMethod Function
highlight TSNamespace guifg=#5486C0 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight markdownItalic guifg=NONE guibg=NONE guisp=NONE gui=italic blend=NONE
highlight! link TSNumber Number
highlight! link TSOperator Operator
highlight StatusLineDeco guifg=#EEBA59 guibg=#393E46 guisp=NONE gui=NONE blend=NONE
highlight! link TSParameter TSField
highlight StatusLineLColAlt guifg=#C7C8D1 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight! link TSParameterReference TSParameter
highlight StatusLineFTAlt guifg=#C7C8D1 guibg=#393E46 guisp=NONE gui=NONE blend=NONE
highlight TSProperty guifg=#64A6C4 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight StatusLineGitAlt guifg=#212121 guibg=#858585 guisp=NONE gui=NONE blend=NONE
highlight! link TSPunctDelimiter Delimiter
highlight StatusLineFileName guifg=#C7C8D1 guibg=#292929 guisp=NONE gui=bold blend=NONE
highlight! link TSPunctBracket Delimiter
highlight! link TabLineError LspDiagnosticsSignError
highlight! link TSPunctSpecial Delimiter
highlight! link TSRepeat Repeat
highlight! link TSString String
highlight WhichKey guifg=#BF85C1 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link TSStringRegex TSString
highlight WhichKeyDesc guifg=#64A6C4 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link TSStringEscape Character
highlight! link TSSymbol Identifier
highlight! link TSTag Tag
highlight! link DiffviewStatusAdded SignAdd
highlight! link TSTagDelimiter Delimiter
highlight TSText guifg=#C7C8D1 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link DiffviewStatusDeleted SignDelete
highlight! link DiffviewFilePanelInsertion SignAdd
highlight! link DiffviewFilePanelDeletion SignDelete
highlight TSEmphasis guifg=NONE guibg=NONE guisp=NONE gui=italic blend=NONE
highlight Directory guifg=#5486C0 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight TSUnderline guifg=NONE guibg=NONE guisp=NONE gui=underline blend=NONE
highlight TSStrike guifg=NONE guibg=NONE guisp=NONE gui=strikethrough blend=NONE
highlight! link TSTitle Title
highlight! link TSLiteral String
highlight TSURI guifg=#64A6C4 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link TSWarning Todo
highlight! link TSType Type
highlight! link TSTypeBuiltin Type
highlight TSVariable guifg=#C7C8D1 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight TSVariableBuiltin guifg=#64A6C4 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link Define PreProc
highlight Character guifg=#B1D67A guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight Float guifg=#AF4B57 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight Identifier guifg=#C7C8D1 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link Conditional Keyword
highlight Keyword guifg=#5486C0 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link Structure Type
highlight! link Include Keyword
highlight WhichKeySeperator guifg=#87B479 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight luaTSConstructor guifg=#9092A2 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight DiffAdd guifg=NONE guibg=#5A7D0C guisp=NONE gui=NONE blend=NONE
highlight TSAnnotation guifg=#64A6C4 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight TSAttribute guifg=#64A6C4 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link TSBoolean Boolean
highlight! link TSCharacter Character
highlight! link TSComment Comment
highlight! link TSConditional Conditional
highlight! link TSConstant Constant
highlight! link TSConstBuiltin Constant
highlight GitSignsChange guifg=#0C7D9D guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link TSConstructor Type
highlight GitSignsDelete guifg=#93151B guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link TSException Exception
highlight TSField guifg=#C7C8D1 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight Search guifg=#C7C8D1 guibg=#67899E guisp=NONE gui=NONE blend=NONE
highlight! link TSFunction Function
highlight! link TSFuncBuiltin Function
highlight LspDiagnosticsDefaultHint guifg=#4DC1FF guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight LspDiagnosticsDefaultError guifg=#F44848 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight LspDiagnosticsDefaultWarning guifg=#FF8800 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight LspDiagnosticsDefaultInformation guifg=#FFCC66 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link LspDiagnosticsVirtualTextHint LspDiagnosticsDefaultHint
highlight! link LspDiagnosticsVirtualTextError LspDiagnosticsDefaultError
highlight! link LspDiagnosticsVirtualTextWarning LspDiagnosticsDefaultWarning
highlight! link LspDiagnosticsVirtualTextInformation LspDiagnosticsDefaultInformation
highlight LspDiagnosticsUnderlineHint guifg=NONE guibg=NONE guisp=#87B479 gui=underline blend=NONE
highlight LspDiagnosticsUnderlineError guifg=NONE guibg=NONE guisp=#AF4B57 gui=underline blend=NONE
highlight LspDiagnosticsUnderlineWarning guifg=NONE guibg=NONE guisp=#EEBA59 gui=underline blend=NONE
highlight LspDiagnosticsUnderlineInformation guifg=NONE guibg=NONE guisp=#5486C0 gui=underline blend=NONE
highlight LspDiagnosticsFloatingHint guifg=#4DC1FF guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight LspDiagnosticsFloatingError guifg=#F44848 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight LspDiagnosticsFloatingWarning guifg=#FF8800 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight LspDiagnosticsFloatingInformation guifg=#FFCC66 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight GitSignsAdd guifg=#5A7D0C guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight PreProc guifg=#64A6C4 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight Constant guifg=#C67158 guibg=NONE guisp=NONE gui=NONE blend=NONE
"Theme built with Lush.nvim, exported at Sun 04 Jul 2021 02:47:35 PM EDT
highlight StatusLineLspDiagnosticsHint guifg=#4DC1FF guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight BufferInactive guifg=#858585 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight Operator guifg=#67899E guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight BufferCurrent guifg=NONE guibg=#212121 guisp=NONE gui=NONE blend=NONE
highlight String guifg=#87B479 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight Number guifg=#AF4B57 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight Boolean guifg=#AF4B57 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight DiffChange guifg=NONE guibg=#0C7D9D guisp=NONE gui=NONE blend=NONE
highlight Error guifg=#F44848 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight DiffDelete guifg=NONE guibg=#93151B guisp=NONE gui=NONE blend=NONE
highlight! link NonText EndOfBuffer
highlight LspDiagnosticsSignError guifg=#F44848 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight LspDiagnosticsSignWarning guifg=#FF8800 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight LspDiagnosticsSignHint guifg=#4DC1FF guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight LspDiagnosticsSignInformation guifg=#FFCC66 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight WarningMsg guifg=#AF4B57 guibg=NONE guisp=NONE gui=NONE blend=NONE
" highlight LspReferenceText guifg=NONE guibg=#292929 guisp=NONE gui=underline blend=NONE
" highlight LspReferenceRead guifg=NONE guibg=#292929 guisp=NONE gui=underline blend=NONE
" highlight LspReferenceWrite guifg=NONE guibg=#292929 guisp=NONE gui=underline blend=NONE
highlight NvimTreeGitStaged guifg=#5A7D0C guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight NvimTreeGitDirty guifg=#5A7D0C guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight NvimTreeGitNew guifg=#5A7D0C guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight NvimTreeGitMerge guifg=#0C7D9D guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight NvimTreeGitRenamed guifg=#0C7D9D guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight NvimTreeRootFolder guifg=#3B6AA0 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight NvimTreeIndentMarker guifg=#858585 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight NvimTreeFolderName guifg=#5486C0 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight NvimTreeOpenedFolderName guifg=#4E99BC guibg=NONE guisp=NONE gui=italic blend=NONE
highlight NvimTreeSpecialFile guifg=#64A6C4 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight NvimTreeExecFile guifg=#87B479 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight NvimTreeImageFile guifg=#BF85C1 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight Comment guifg=#858585 guibg=NONE guisp=NONE gui=italic blend=NONE
highlight CodiVirtualText guifg=#4DC1FF guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight ErrorMsg guifg=#F44848 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight IndentBlanklineContextChar guifg=#6B6B6B guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight DashboardFooter guifg=#64A6C4 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight DashboardCenter guifg=#BF85C1 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight DashboardHeader guifg=#5486C0 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight DiffviewVertSplit guifg=#858585 guibg=#212121 guisp=NONE gui=NONE blend=NONE
highlight markdownCode guifg=#C67158 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link DiffviewStatusRenamed SignChange
highlight! link DiffviewStatusModified SignChange
highlight! link DiffviewNormal NvimTreeNormal
highlight CompeDocumentation guifg=NONE guibg=#393E46 guisp=NONE gui=NONE blend=NONE
highlight WhichKeyFloat guifg=NONE guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight WhichKeyGroup guifg=#5486C0 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link TabLineInformation LspDiagnosticsSignInformation
highlight! link TabLineHint LspDiagnosticsSignHint
highlight NvimTreeFolderIcon guifg=#5486C0 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link TabLineWarning LspDiagnosticsSignWarning
highlight LspTroubleIndent guifg=#919191 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link IncSearch Search
highlight StatusLineLSP guifg=#A3A3A3 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight StatusLineGit guifg=#212121 guibg=#858585 guisp=NONE gui=NONE blend=NONE
highlight! link ColorColumn CursorLine
highlight StatusLineLCol guifg=#C7C8D1 guibg=#393E46 guisp=NONE gui=NONE blend=NONE
highlight StatusLineMode guifg=#212121 guibg=#858585 guisp=NONE gui=bold blend=NONE
highlight StatusLineNC guifg=#858585 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight StatusLine guifg=#C7C8D1 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight FlutterWidgetGuides guifg=#919191 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link TSInclude Include
highlight! link TSFuncMacro Macro
highlight! link markdownLinkDelimiter Delimiter
highlight Function guifg=#EEBA59 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link mkdInlineURL mkdLink
highlight! link TSFloat Float
highlight TabLineSel guifg=#292929 guibg=#5486C0 guisp=NONE gui=NONE blend=NONE
highlight TSError guifg=NONE guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight SignChange guifg=#0C7D9D guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link TSConstMacro Macro
highlight! link markdownIdDelimiter Delimiter
highlight! link markdownUrl mkdLink
highlight! link Question MoreMsg
highlight BufferCurrentTarget guifg=#AF4B57 guibg=#212121 guisp=NONE gui=bold blend=NONE
highlight StatusLineFT guifg=#C7C8D1 guibg=#393E46 guisp=NONE gui=NONE blend=NONE
highlight BufferCurrentMod guifg=#FFCC66 guibg=#212121 guisp=NONE gui=NONE blend=NONE
highlight BufferCurrentIndex guifg=#64A6C4 guibg=#212121 guisp=NONE gui=NONE blend=NONE
highlight! link NvimTreeOpenedFile NvimTreeOpenedFolderName
highlight SignDelete guifg=#93151B guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight SignAdd guifg=#5A7D0C guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight BufferCurrentSign guifg=#64A6C4 guibg=#212121 guisp=NONE gui=NONE blend=NONE
highlight Bold guifg=NONE guibg=NONE guisp=NONE gui=bold blend=NONE
highlight Todo guifg=#AF4B57 guibg=NONE guisp=NONE gui=bold blend=NONE
highlight! link SignColumn Normal
highlight! link ModeMsg Normal
highlight! link MsgArea Normal
highlight! link MsgSeparator Normal
highlight SpellBad guifg=#C7C8D1 guibg=NONE guisp=#AF4B57 gui=underline blend=NONE
highlight SpellCap guifg=#C7C8D1 guibg=NONE guisp=#EEBA59 gui=underline blend=NONE
highlight SpellLocal guifg=#C7C8D1 guibg=NONE guisp=#87B479 gui=underline blend=NONE
highlight SpellRare guifg=#C7C8D1 guibg=NONE guisp=#5486C0 gui=underline blend=NONE
highlight! link NormalNC Normal
highlight Pmenu guifg=#C7C8D1 guibg=#393E46 guisp=NONE gui=NONE blend=NONE
highlight PmenuSel guifg=#262626 guibg=#67899E guisp=NONE gui=NONE blend=NONE
highlight! link WildMenu PmenuSel
highlight CursorLineNr guifg=#C7C8C0 guibg=NONE guisp=NONE gui=bold blend=NONE
highlight markdownLinkText guifg=#64A6C4 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight Folded guifg=#858585 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight! link StorageClass Type
highlight! link SpecialChar Character
highlight FoldColumn guifg=#858585 guibg=#212121 guisp=NONE gui=NONE blend=NONE
highlight LineNr guifg=#858585 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight FloatBorder guifg=#858585 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight Whitespace guifg=#575757 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight NormalFloat guifg=NONE guibg=#292D32 guisp=NONE gui=NONE blend=NONE
highlight Visual guifg=NONE guibg=#2C2F35 guisp=NONE gui=NONE blend=NONE
highlight! link VisualNOS Visual
highlight DiffText guifg=NONE guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link QuickFixLine CursorLine
highlight PmenuSbar guifg=NONE guibg=#535A65 guisp=NONE gui=NONE blend=NONE
highlight PmenuThumb guifg=NONE guibg=#C7C8D1 guisp=NONE gui=NONE blend=NONE
highlight MatchParen guifg=NONE guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight Cursor guifg=NONE guibg=NONE guisp=NONE gui=reverse blend=NONE
highlight! link lCursor Cursor
highlight! link CursorIM Cursor
highlight TabLine guifg=#C7C8D1 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight TelescopeSelection guifg=#64A6C4 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight NvimTreeGitDelete guifg=#93151B guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link TSMethod Function
highlight Identifier guifg=#C7C8D1 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight NvimTreeRootFolder guifg=#3B6AA0 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight GitSignsChange guifg=#0C7D9D guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link TSLabel Label
highlight! link TSComment Comment
highlight! link LspDiagnosticsWarning LspDiagnosticsSignWarning
highlight SignAdd guifg=#5A7D0C guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link IncSearch Search
highlight WhichKey guifg=#BF85C1 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link TSLiteral String
highlight BufferCurrent guifg=NONE guibg=#212121 guisp=NONE gui=NONE blend=NONE
highlight Todo guifg=#AF4B57 guibg=NONE guisp=NONE gui=bold blend=NONE
highlight! link TSParameterReference TSParameter
highlight NvimTreeOpenedFolderName guifg=#4E99BC guibg=NONE guisp=NONE gui=italic blend=NONE
highlight! link MsgSeparator Normal
highlight! link TermCursor Cursor
highlight LspDiagnosticsFloatingHint guifg=#4DC1FF guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link TSConstBuiltin Constant
highlight TSStrike guifg=NONE guibg=NONE guisp=NONE gui=strikethrough blend=NONE
highlight Number guifg=#AF4B57 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link WildMenu PmenuSel
highlight DiffText guifg=NONE guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight SignDelete guifg=#93151B guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight Normal guifg=#C7C8D1 guibg=#212121 guisp=NONE gui=NONE blend=NONE
highlight LspDiagnosticsSignInformation guifg=#FFCC66 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight Type guifg=#BF85C1 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight Float guifg=#AF4B57 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight CompeDocumentation guifg=NONE guibg=#393E46 guisp=NONE gui=NONE blend=NONE
highlight Ignore guifg=#C7C8D1 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight GitSignsDelete guifg=#93151B guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link TSConstant Constant
highlight StatusLineSeparator guifg=NONE guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight! link TSConstructor Type
highlight! link Substitute Search
highlight StatusLineGitDelete guifg=#AF4B57 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight LspDiagnosticsSignError guifg=#F44848 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight StatusLineLspDiagnosticsError guifg=#F44848 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight WhichKeyFloat guifg=NONE guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight markdownItalic guifg=NONE guibg=NONE guisp=NONE gui=italic blend=NONE
highlight Pmenu guifg=#C7C8D1 guibg=#393E46 guisp=NONE gui=NONE blend=NONE
highlight! link TabLineWarning LspDiagnosticsSignWarning
highlight PmenuSel guifg=#262626 guibg=#67899E guisp=NONE gui=NONE blend=NONE
highlight! link Typedef Type
highlight! link Define PreProc
highlight TSError guifg=NONE guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight Directory guifg=#5486C0 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight DashboardFooter guifg=#64A6C4 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight WhichKeyGroup guifg=#5486C0 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link TermCursorNC Cursor
highlight MatchParen guifg=NONE guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight! link TSOperator Operator
highlight TSVariableBuiltin guifg=#64A6C4 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight NvimTreeGitDirty guifg=#5A7D0C guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight BufferVisibleIndex guifg=NONE guibg=#212121 guisp=NONE gui=NONE blend=NONE
highlight LspDiagnosticsFloatingError guifg=#F44848 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight WarningMsg guifg=#AF4B57 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight DashboardCenter guifg=#BF85C1 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight Conceal guifg=#5486C0 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight NvimTreeVertSplit guifg=#292929 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight LspDiagnosticsSignWarning guifg=#FF8800 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight LspDiagnosticsUnderlineHint guifg=NONE guibg=NONE guisp=#87B479 gui=underline blend=NONE
highlight Visual guifg=NONE guibg=#2C2F35 guisp=NONE gui=NONE blend=NONE
highlight Tag guifg=#7299EE guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight TelescopeMatching guifg=#AF4B57 guibg=NONE guisp=NONE gui=bold blend=NONE
highlight LspDiagnosticsDefaultInformation guifg=#FFCC66 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight WhichKeySeperator guifg=#87B479 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link htmlH1 Title
highlight! link TSParameter TSField
highlight! link LspDiagnosticsVirtualTextWarning LspDiagnosticsDefaultWarning
highlight! link TSTagDelimiter Delimiter
highlight BufferInactiveTarget guifg=#AF4B57 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight! link LspDiagnosticsVirtualTextInformation LspDiagnosticsDefaultInformation
highlight StatusLineLspDiagnosticsWarning guifg=#FF8800 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight! link CursorIM Cursor
highlight! link TSFloat Float
highlight! link markdownIdDelimiter Delimiter
highlight BufferCurrentMod guifg=#FFCC66 guibg=#212121 guisp=NONE gui=NONE blend=NONE
highlight Whitespace guifg=#575757 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link Repeat Keyword
highlight NvimTreeIndentMarker guifg=#858585 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight Character guifg=#B1D67A guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight NvimTreeGitRenamed guifg=#0C7D9D guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight BufferInactiveMod guifg=#FFCC66 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight! link DiffviewFilePanelDeletion SignDelete
highlight StatusLineTreeSitter guifg=#87B479 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight SpecialKey guifg=#5486C0 guibg=NONE guisp=NONE gui=bold blend=NONE
highlight DiffAdd guifg=NONE guibg=#5A7D0C guisp=NONE gui=NONE blend=NONE
highlight CursorLine guifg=NONE guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight! link TSPunctSpecial Delimiter
highlight! link QuickFixLine CursorLine
highlight! link Label Keyword
highlight TSEmphasis guifg=NONE guibg=NONE guisp=NONE gui=italic blend=NONE
highlight Error guifg=#F44848 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link TSWarning Todo
highlight! link TSNumber Number
highlight BufferVisible guifg=NONE guibg=#212121 guisp=NONE gui=NONE blend=NONE
highlight SpellRare guifg=#C7C8D1 guibg=NONE guisp=#5486C0 gui=underline blend=NONE
highlight LspDiagnosticsDefaultError guifg=#F44848 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link Question MoreMsg
highlight Operator guifg=#67899E guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight Cursor guifg=NONE guibg=NONE guisp=NONE gui=reverse blend=NONE
highlight BufferCurrentIndex guifg=#64A6C4 guibg=#212121 guisp=NONE gui=NONE blend=NONE
highlight! link CursorColumn CursorLine
highlight! link TSType Type
highlight StatusLine guifg=#C7C8D1 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight LspDiagnosticsUnderlineInformation guifg=NONE guibg=NONE guisp=#5486C0 gui=underline blend=NONE
highlight! link NormalNC Normal
highlight! link TSRepeat Repeat
highlight NvimTreeNormal guifg=#B1B3BE guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight ErrorMsg guifg=#F44848 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight NvimTreeGitMerge guifg=#0C7D9D guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight mkdLineBreak guifg=NONE guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight NvimTreeGitNew guifg=#5A7D0C guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link LspDiagnosticsHint LspDiagnosticsSignHint
highlight! link DiffviewNormal NvimTreeNormal
highlight! link PreCondit PreProc
highlight! link Macro PreProc
highlight NormalFloat guifg=NONE guibg=#292D32 guisp=NONE gui=NONE blend=NONE
highlight! link TSStringRegex TSString
highlight FlutterWidgetGuides guifg=#919191 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight Debug guifg=#AF4B57 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight TSAttribute guifg=#64A6C4 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight BufferInactiveIndex guifg=#858585 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight! link TSKeyword Keyword
highlight mkdHeading guifg=#C7C8D1 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link LspDiagnosticsVirtualTextError LspDiagnosticsDefaultError
highlight Function guifg=#EEBA59 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight StatusLineNC guifg=#C7C8C0 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight! link DiffviewStatusAdded SignAdd
highlight! link TSString String
highlight TSText guifg=#C7C8D1 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link DiffviewFilePanelInsertion SignAdd
highlight! link TSTag Tag
highlight! link LspDiagnosticsInformation LspDiagnosticsSignInformation
highlight! link TSKeywordFunction Keyword
highlight LspDiagnosticsDefaultHint guifg=#4DC1FF guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link DiffviewStatusModified SignChange
highlight DiffviewVertSplit guifg=#858585 guibg=#212121 guisp=NONE gui=NONE blend=NONE
highlight NvimTreeGitStaged guifg=#5A7D0C guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link NonText EndOfBuffer
highlight NvimTreeSpecialFile guifg=#64A6C4 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight SpecialComment guifg=#858585 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link Exception Keyword
highlight PreProc guifg=#64A6C4 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link markdownUrl mkdLink
highlight LspDiagnosticsFloatingWarning guifg=#FF8800 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight TSNamespace guifg=#5486C0 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight VertSplit guifg=#393E46 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight BufferVisibleTarget guifg=#AF4B57 guibg=#212121 guisp=NONE gui=bold blend=NONE
highlight FloatBorder guifg=#858585 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight! link TabLineHint LspDiagnosticsSignHint
highlight BufferVisibleSign guifg=#FFCC66 guibg=#212121 guisp=NONE gui=NONE blend=NONE
highlight BufferVisibleMod guifg=#FFCC66 guibg=#212121 guisp=NONE gui=NONE blend=NONE
highlight TSUnderline guifg=NONE guibg=NONE guisp=NONE gui=underline blend=NONE
highlight LspTroubleIndent guifg=#919191 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight EndOfBuffer guifg=#212121 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link TabLineError LspDiagnosticsSignError
highlight! link LspDiagnosticsVirtualTextHint LspDiagnosticsDefaultHint
highlight! link Structure Type
highlight CodiVirtualText guifg=#4DC1FF guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link DiffviewStatusDeleted SignDelete
highlight! link TSFuncBuiltin Function
highlight! link lCursor Cursor
highlight DiffDelete guifg=NONE guibg=#93151B guisp=NONE gui=NONE blend=NONE
highlight markdownLinkText guifg=#64A6C4 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link TSTypeBuiltin Type
highlight! link TSFuncMacro Macro
highlight BufferCurrentTarget guifg=#AF4B57 guibg=#212121 guisp=NONE gui=bold blend=NONE
highlight! link TSPunctDelimiter Delimiter
highlight! link TSException Exception
highlight TSProperty guifg=#64A6C4 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight NvimTreeImageFile guifg=#BF85C1 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight TSVariable guifg=#C7C8D1 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight LspDiagnosticsUnderlineWarning guifg=NONE guibg=NONE guisp=#EEBA59 gui=underline blend=NONE
highlight DashboardHeader guifg=#5486C0 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight TabLineFill guifg=#C7C8D1 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight LspDiagnosticsSignHint guifg=#4DC1FF guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight Bold guifg=NONE guibg=NONE guisp=NONE gui=bold blend=NONE
highlight String guifg=#87B479 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link TabLineInformation LspDiagnosticsSignInformation
highlight mkdLink guifg=#64A6C4 guibg=NONE guisp=NONE gui=underline blend=NONE
highlight! link TSFunction Function
highlight NvimTreeFolderIcon guifg=#5486C0 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight Title guifg=#5486C0 guibg=NONE guisp=NONE gui=bold blend=NONE
highlight! link SignColumn Normal
highlight! link TSPunctBracket Delimiter
highlight! link TSCharacter Character
highlight luaTSConstructor guifg=#9092A2 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight Keyword guifg=#5486C0 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link Statement Keyword
highlight MoreMsg guifg=#64A6C4 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight TSURI guifg=#64A6C4 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight SpellCap guifg=#C7C8D1 guibg=NONE guisp=#EEBA59 gui=underline blend=NONE
highlight GitSignsAdd guifg=#5A7D0C guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight LspDiagnosticsFloatingInformation guifg=#FFCC66 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight Special guifg=#C67158 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight Comment guifg=#858585 guibg=NONE guisp=NONE gui=italic blend=NONE
highlight Folded guifg=#858585 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight! link TSStringEscape Character
highlight! link markdownLinkDelimiter Delimiter
highlight LspDiagnosticsDefaultWarning guifg=#FF8800 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link Conditional Keyword
highlight Search guifg=#C7C8D1 guibg=#67899E guisp=NONE gui=NONE blend=NONE
highlight Italic guifg=NONE guibg=NONE guisp=NONE gui=italic blend=NONE
highlight CursorLineNr guifg=#C7C8C0 guibg=NONE guisp=NONE gui=bold blend=NONE
highlight! link VisualNOS Visual
highlight DiffChange guifg=NONE guibg=#0C7D9D guisp=NONE gui=NONE blend=NONE
highlight! link ColorColumn CursorLine
highlight! link TSBoolean Boolean
highlight! link markdownLinkTextDelimiter Delimiter
highlight SpellBad guifg=#C7C8D1 guibg=NONE guisp=#AF4B57 gui=underline blend=NONE
highlight StatusLineGitChange guifg=#5486C0 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight! link TSInclude Include
highlight! link Include Keyword
highlight SpellLocal guifg=#C7C8D1 guibg=NONE guisp=#87B479 gui=underline blend=NONE
highlight! link NvimTreeOpenedFile NvimTreeOpenedFolderName
highlight! link TSSymbol Identifier
highlight! link TSConstMacro Macro
highlight! link TSTitle Title
highlight PmenuThumb guifg=NONE guibg=#C7C8D1 guisp=NONE gui=NONE blend=NONE
highlight SignChange guifg=#0C7D9D guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight Delimiter guifg=#9092A2 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight TelescopeBorder guifg=#858585 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight NvimTreeFolderName guifg=#5486C0 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight Underlined guifg=NONE guibg=NONE guisp=NONE gui=underline blend=NONE
highlight! link ModeMsg Normal
highlight LspDiagnosticsUnderlineError guifg=NONE guibg=NONE guisp=#AF4B57 gui=underline blend=NONE
highlight NvimTreeExecFile guifg=#87B479 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight IndentBlanklineContextChar guifg=#6B6B6B guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link MsgArea Normal
highlight TabLineSel guifg=#292929 guibg=#5486C0 guisp=NONE gui=NONE blend=NONE
highlight! link TSConditional Conditional
highlight BufferCurrentSign guifg=#64A6C4 guibg=#212121 guisp=NONE gui=NONE blend=NONE
highlight TSField guifg=#C7C8D1 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight LineNr guifg=#858585 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight WhichKeyDesc guifg=#64A6C4 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight Constant guifg=#C67158 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight TSAnnotation guifg=#64A6C4 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight BufferInactiveSign guifg=#858585 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight! link mkdInlineURL mkdLink
highlight mkdUnderline guifg=#858585 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight! link LspDiagnosticsError LspDiagnosticsSignError
highlight Boolean guifg=#AF4B57 guibg=NONE guisp=NONE gui=NONE blend=NONE
highlight PmenuSbar guifg=NONE guibg=#535A65 guisp=NONE gui=NONE blend=NONE
highlight StatusLineGit guifg=#C67158 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight StatusLineGitAdd guifg=#87B479 guibg=#292929 guisp=NONE gui=NONE blend=NONE
highlight StatusLineLspDiagnosticsInformation guifg=#FFCC66 guibg=#292929 guisp=NONE gui=NONE blend=NONE

View file

@ -1,4 +1,4 @@
vim.cmd([[
vim.cmd [[
au BufRead,BufNewFile *.zig set filetype=zig
au BufRead,BufNewFile *.zir set filetype=zir
]])
]]

View file

@ -1,31 +1,20 @@
local clangd_flags = {"--background-index"};
local clangd_flags = { "--background-index" }
if O.lang.clang.cross_file_rename then
table.insert(clangd_flags, "--cross-file-rename")
table.insert(clangd_flags, "--cross-file-rename")
end
table.insert(clangd_flags, "--header-insertion=" .. O.lang.clang.header_insertion)
require'lspconfig'.clangd.setup {
cmd = {DATA_PATH .. "/lspinstall/cpp/clangd/bin/clangd", unpack(clangd_flags)},
on_attach = require'lsp'.common_on_attach,
handlers = {
["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, {
virtual_text = O.lang.clang.diagnostics.virtual_text,
signs = O.lang.clang.diagnostics.signs,
underline = O.lang.clang.diagnostics.underline,
update_in_insert = true
})
}
require("lspconfig").clangd.setup {
cmd = { DATA_PATH .. "/lspinstall/cpp/clangd/bin/clangd", unpack(clangd_flags) },
on_attach = require("lsp").common_on_attach,
handlers = {
["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, {
virtual_text = O.lang.clang.diagnostics.virtual_text,
signs = O.lang.clang.diagnostics.signs,
underline = O.lang.clang.diagnostics.underline,
update_in_insert = true,
}),
},
}
if O.lang.clang.autoformat then
require('lv-utils').define_augroups({
_clang_autoformat = {
{'BufWritePre *.c lua vim.lsp.buf.formatting_sync(nil,1000)'},
{'BufWritePre *.h lua vim.lsp.buf.formatting_sync(nil,1000)'},
{'BufWritePre *.cpp lua vim.lsp.buf.formatting_sync(nil,1000)'},
{'BufWritePre *.hpp lua vim.lsp.buf.formatting_sync(nil,1000)'},
}})
end

View file

@ -1,5 +1,5 @@
require'lspconfig'.cmake.setup {
cmd = {DATA_PATH .. '/lspinstall/cmake/venv/bin/cmake-language-server'},
on_attach = require'lsp'.common_on_attach,
filetypes = {"cmake"},
require("lspconfig").cmake.setup {
cmd = { DATA_PATH .. "/lspinstall/cmake/venv/bin/cmake-language-server" },
on_attach = require("lsp").common_on_attach,
filetypes = { "cmake" },
}

View file

@ -1,9 +1,10 @@
-- npm install -g vscode-css-languageserver-bin
require'lspconfig'.cssls.setup {
cmd = {
"node", DATA_PATH .. "/lspinstall/css/vscode-css/css-language-features/server/dist/node/cssServerMain.js",
"--stdio"
},
on_attach = require'lsp'.common_on_attach
require("lspconfig").cssls.setup {
cmd = {
"node",
DATA_PATH .. "/lspinstall/css/vscode-css/css-language-features/server/dist/node/cssServerMain.js",
"--stdio",
},
on_attach = require("lsp").common_on_attach,
}
vim.cmd("setl ts=2 sw=2")
vim.cmd "setl ts=2 sw=2"

View file

@ -1,11 +1,11 @@
require'lspconfig'.dartls.setup{
cmd = { "dart", O.lang.dart.sdk_path, "--lsp" },
on_attach = require'lsp'.common_on_attach,
init_options = {
closingLabels = false,
flutterOutline = false,
onlyAnalyzeProjectsWithOpenFiles = false,
outline = false,
suggestFromUnimportedLibraries = true
}
require("lspconfig").dartls.setup {
cmd = { "dart", O.lang.dart.sdk_path, "--lsp" },
on_attach = require("lsp").common_on_attach,
init_options = {
closingLabels = false,
flutterOutline = false,
onlyAnalyzeProjectsWithOpenFiles = false,
outline = false,
suggestFromUnimportedLibraries = true,
},
}

View file

@ -1,6 +0,0 @@
-- npm install -g dockerfile-language-server-nodejs
require'lspconfig'.dockerls.setup {
cmd = {DATA_PATH .. "/lspinstall/dockerfile/node_modules/.bin/docker-langserver", "--stdio"},
on_attach = require'lsp'.common_on_attach,
root_dir = vim.loop.cwd
}

6
ftplugin/dockerfile.lua Normal file
View file

@ -0,0 +1,6 @@
-- npm install -g dockerfile-language-server-nodejs
require("lspconfig").dockerls.setup {
cmd = { DATA_PATH .. "/lspinstall/dockerfile/node_modules/.bin/docker-langserver", "--stdio" },
on_attach = require("lsp").common_on_attach,
root_dir = vim.loop.cwd,
}

View file

@ -1,5 +1,5 @@
require'lspconfig'.elixirls.setup{
cmd = { DATA_PATH .. "/lspinstall/elixir/elixir-ls/language_server.sh"};
require("lspconfig").elixirls.setup {
cmd = { DATA_PATH .. "/lspinstall/elixir/elixir-ls/language_server.sh" },
}
-- needed for the LSP to recognize elixir files (alternativly just use elixir-editors/vim-elixir)

View file

@ -1,9 +1,9 @@
require'lspconfig'.elmls.setup {
cmd = {DATA_PATH .. "/lspinstall/elm/node_modules/.bin/elm-language-server"},
init_options= {
elmAnalyseTrigger = "change",
elmFormatPath = DATA_PATH .. "/lspinstall/elm/node_modules/.bin/elm-format",
elmPath = DATA_PATH .. "/lspinstall/elm/node_modules/.bin/elm",
elmTestPath = DATA_PATH .. "/lspinstall/elm/node_modules/.bin/elm-test"
}
require("lspconfig").elmls.setup {
cmd = { DATA_PATH .. "/lspinstall/elm/node_modules/.bin/elm-language-server" },
init_options = {
elmAnalyseTrigger = "change",
elmFormatPath = DATA_PATH .. "/lspinstall/elm/node_modules/.bin/elm-format",
elmPath = DATA_PATH .. "/lspinstall/elm/node_modules/.bin/elm",
elmTestPath = DATA_PATH .. "/lspinstall/elm/node_modules/.bin/elm-test",
},
}

View file

@ -1,6 +1,6 @@
-- TODO Remove this at some point
require'lspconfig'.elixirls.setup{
cmd = { DATA_PATH .. "/lspinstall/elixir/elixir-ls/language_server.sh"};
require("lspconfig").elixirls.setup {
cmd = { DATA_PATH .. "/lspinstall/elixir/elixir-ls/language_server.sh" },
}
-- needed for the LSP to recognize elixir files (alternativly just use elixir-editors/vim-elixir)

View file

@ -1,22 +1,12 @@
require'lspconfig'.gopls.setup {
cmd = {DATA_PATH .. "/lspinstall/go/gopls"},
settings = {gopls = {analyses = {unusedparams = true}, staticcheck = true}},
root_dir = require'lspconfig'.util.root_pattern(".git", "go.mod"),
init_options = {usePlaceholders = true, completeUnimported = true},
on_attach = require'lsp'.common_on_attach
require("lspconfig").gopls.setup {
cmd = { DATA_PATH .. "/lspinstall/go/gopls" },
settings = { gopls = { analyses = { unusedparams = true }, staticcheck = true } },
root_dir = require("lspconfig").util.root_pattern(".git", "go.mod"),
init_options = { usePlaceholders = true, completeUnimported = true },
on_attach = require("lsp").common_on_attach,
}
if O.lang.go.autoformat then
require('lv-utils').define_augroups({
_go_format = {
{'BufWritePre', '*.go', 'lua vim.lsp.buf.formatting_sync(nil,1000)'}
},
_go = {
-- Go generally requires Tabs instead of spaces.
{'FileType', 'go', 'setlocal tabstop=4'},
{'FileType', 'go', 'setlocal shiftwidth=4'},
{'FileType', 'go', 'setlocal softtabstop=4'},
{'FileType', 'go', 'setlocal noexpandtab'}
}
})
end
vim.opt_local.tabstop = 4
vim.opt_local.shiftwidth = 4
vim.opt_local.softtabstop = 4
vim.opt_local.expandtab = false

View file

@ -1,2 +1,2 @@
-- npm install -g graphql-language-service-cli
require'lspconfig'.graphql.setup {on_attach = require'lsp'.common_on_attach}
require("lspconfig").graphql.setup { on_attach = require("lsp").common_on_attach }

View file

@ -2,9 +2,13 @@
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities.textDocument.completion.completionItem.snippetSupport = true
require'lspconfig'.html.setup {
cmd = {"node", DATA_PATH .. "/lspinstall/html/vscode-html/html-language-features/server/dist/node/htmlServerMain.js", "--stdio"},
on_attach = require'lsp'.common_on_attach,
capabilities = capabilities
require("lspconfig").html.setup {
cmd = {
"node",
DATA_PATH .. "/lspinstall/html/vscode-html/html-language-features/server/dist/node/htmlServerMain.js",
"--stdio",
},
on_attach = require("lsp").common_on_attach,
capabilities = capabilities,
}
vim.cmd("setl ts=2 sw=2")
vim.cmd "setl ts=2 sw=2"

View file

@ -1,4 +1,4 @@
local util = require 'lspconfig/util'
local util = require "lspconfig/util"
-- In Vimscript
-- augroup lsp
-- au!
@ -20,17 +20,17 @@ local util = require 'lspconfig/util'
-- };
local on_attach = function(client, bufr)
-- require('jdtls').setup_dap()
require'lsp'.common_on_attach(client, bufr)
-- require('jdtls').setup_dap()
require("lsp").common_on_attach(client, bufr)
end
require'lspconfig'.jdtls.setup {
on_attach = on_attach,
cmd = {DATA_PATH .. "/lspinstall/java/jdtls.sh"},
filetypes = { "java" },
root_dir = util.root_pattern({'.git', 'build.gradle', 'pom.xml'}),
-- init_options = {bundles = bundles}
-- on_attach = require'lsp'.common_on_attach
require("lspconfig").jdtls.setup {
on_attach = on_attach,
cmd = { DATA_PATH .. "/lspinstall/java/jdtls.sh" },
filetypes = { "java" },
root_dir = util.root_pattern { ".git", "build.gradle", "pom.xml" },
-- init_options = {bundles = bundles}
-- on_attach = require'lsp'.common_on_attach
}
-- require('jdtls').start_or_attach({
@ -41,10 +41,10 @@ require'lspconfig'.jdtls.setup {
-- })
-- TODO setup autoformat stuff later
-- _java = {
-- -- {'FileType', 'java', 'luafile '..CONFIG_PATH..'/lua/lsp/java-ls.lua'},
-- {
-- 'FileType', 'java',
-- 'nnoremap ca <Cmd>lua require(\'jdtls\').code_action()<CR>'
-- }
-- }
-- _java = {
-- -- {'FileType', 'java', 'luafile '..CONFIG_PATH..'/lua/lsp/java-ls.lua'},
-- {
-- 'FileType', 'java',
-- 'nnoremap ca <Cmd>lua require(\'jdtls\').code_action()<CR>'
-- }
-- }

View file

@ -7,64 +7,32 @@
-- require'completion'.on_attach(client)
-- require'illuminate'.on_attach(client)
-- end
require'lspconfig'.tsserver.setup {
cmd = {
DATA_PATH ..
"/lspinstall/typescript/node_modules/.bin/typescript-language-server",
"--stdio"
},
filetypes = {
"javascript", "javascriptreact", "javascript.jsx", "typescript",
"typescriptreact", "typescript.tsx"
},
on_attach = require'lsp'.tsserver_on_attach,
-- This makes sure tsserver is not used for formatting (I prefer prettier)
-- on_attach = require'lsp'.common_on_attach,
root_dir = require('lspconfig/util').root_pattern("package.json",
"tsconfig.json",
"jsconfig.json", ".git"),
settings = {documentFormatting = false},
handlers = {
["textDocument/publishDiagnostics"] = vim.lsp.with(
vim.lsp.diagnostic.on_publish_diagnostics, {
virtual_text = O.lang.tsserver.diagnostics.virtual_text,
signs = O.lang.tsserver.diagnostics.signs,
underline = O.lang.tsserver.diagnostics.underline,
update_in_insert = true
})
}
require("lspconfig").tsserver.setup {
cmd = {
DATA_PATH .. "/lspinstall/typescript/node_modules/.bin/typescript-language-server",
"--stdio",
},
filetypes = {
"javascript",
"javascriptreact",
"javascript.jsx",
"typescript",
"typescriptreact",
"typescript.tsx",
},
on_attach = require("lsp").tsserver_on_attach,
-- This makes sure tsserver is not used for formatting (I prefer prettier)
-- on_attach = require'lsp'.common_on_attach,
root_dir = require("lspconfig/util").root_pattern("package.json", "tsconfig.json", "jsconfig.json", ".git"),
settings = { documentFormatting = false },
handlers = {
["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, {
virtual_text = O.lang.tsserver.diagnostics.virtual_text,
signs = O.lang.tsserver.diagnostics.signs,
underline = O.lang.tsserver.diagnostics.underline,
update_in_insert = true,
}),
},
}
require'lsp.ts-fmt-lint'.setup()
if O.lang.tsserver.autoformat then
require('lv-utils').define_augroups({
_javascript_autoformat = {
{
'BufWritePre', '*.js',
'lua vim.lsp.buf.formatting_sync(nil, 1000)'
}
},
_javascriptreact_autoformat = {
{
'BufWritePre', '*.jsx',
'lua vim.lsp.buf.formatting_sync(nil, 1000)'
}
},
_typescript_autoformat = {
{
'BufWritePre', '*.ts',
'lua vim.lsp.buf.formatting_sync(nil, 1000)'
}
},
_typescriptreact_autoformat = {
{
'BufWritePre', '*.tsx',
'lua vim.lsp.buf.formatting_sync(nil, 1000)'
}
}
})
end
vim.cmd("setl ts=2 sw=2")
require("lsp.ts-fmt-lint").setup()
vim.cmd "setl ts=2 sw=2"

View file

@ -7,64 +7,32 @@
-- require'completion'.on_attach(client)
-- require'illuminate'.on_attach(client)
-- end
require'lspconfig'.tsserver.setup {
cmd = {
DATA_PATH ..
"/lspinstall/typescript/node_modules/.bin/typescript-language-server",
"--stdio"
},
filetypes = {
"javascript", "javascriptreact", "javascript.jsx", "typescript",
"typescriptreact", "typescript.tsx"
},
on_attach = require'lsp'.tsserver_on_attach,
-- This makes sure tsserver is not used for formatting (I prefer prettier)
-- on_attach = require'lsp'.common_on_attach,
root_dir = require('lspconfig/util').root_pattern("package.json",
"tsconfig.json",
"jsconfig.json", ".git"),
settings = {documentFormatting = false},
handlers = {
["textDocument/publishDiagnostics"] = vim.lsp.with(
vim.lsp.diagnostic.on_publish_diagnostics, {
virtual_text = O.lang.tsserver.diagnostics.virtual_text,
signs = O.lang.tsserver.diagnostics.signs,
underline = O.lang.tsserver.diagnostics.underline,
update_in_insert = true
})
}
require("lspconfig").tsserver.setup {
cmd = {
DATA_PATH .. "/lspinstall/typescript/node_modules/.bin/typescript-language-server",
"--stdio",
},
filetypes = {
"javascript",
"javascriptreact",
"javascript.jsx",
"typescript",
"typescriptreact",
"typescript.tsx",
},
on_attach = require("lsp").tsserver_on_attach,
-- This makes sure tsserver is not used for formatting (I prefer prettier)
-- on_attach = require'lsp'.common_on_attach,
root_dir = require("lspconfig/util").root_pattern("package.json", "tsconfig.json", "jsconfig.json", ".git"),
settings = { documentFormatting = false },
handlers = {
["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, {
virtual_text = O.lang.tsserver.diagnostics.virtual_text,
signs = O.lang.tsserver.diagnostics.signs,
underline = O.lang.tsserver.diagnostics.underline,
update_in_insert = true,
}),
},
}
require'lsp.ts-fmt-lint'.setup()
if O.lang.tsserver.autoformat then
require('lv-utils').define_augroups({
_javascript_autoformat = {
{
'BufWritePre', '*.js',
'lua vim.lsp.buf.formatting_sync(nil, 1000)'
}
},
_javascriptreact_autoformat = {
{
'BufWritePre', '*.jsx',
'lua vim.lsp.buf.formatting_sync(nil, 1000)'
}
},
_typescript_autoformat = {
{
'BufWritePre', '*.ts',
'lua vim.lsp.buf.formatting_sync(nil, 1000)'
}
},
_typescriptreact_autoformat = {
{
'BufWritePre', '*.tsx',
'lua vim.lsp.buf.formatting_sync(nil, 1000)'
}
}
})
end
vim.cmd("setl ts=2 sw=2")
require("lsp.ts-fmt-lint").setup()
vim.cmd "setl ts=2 sw=2"

View file

@ -1,28 +1,17 @@
-- npm install -g vscode-json-languageserver
require'lspconfig'.jsonls.setup {
cmd = {
"node", DATA_PATH ..
"/lspinstall/json/vscode-json/json-language-features/server/dist/node/jsonServerMain.js",
"--stdio"
require("lspconfig").jsonls.setup {
cmd = {
"node",
DATA_PATH .. "/lspinstall/json/vscode-json/json-language-features/server/dist/node/jsonServerMain.js",
"--stdio",
},
on_attach = require("lsp").common_on_attach,
commands = {
Format = {
function()
vim.lsp.buf.range_formatting({}, { 0, 0 }, { vim.fn.line "$", 0 })
end,
},
on_attach = require'lsp'.common_on_attach,
commands = {
Format = {
function()
vim.lsp.buf.range_formatting({}, {0, 0}, {vim.fn.line("$"), 0})
end
}
}
},
}
if O.lang.json.autoformat then
require('lv-utils').define_augroups({
_json_format = {
{
'BufWritePre', '*.json',
'lua vim.lsp.buf.formatting_sync(nil, 1000)'
}
}
})
end

View file

@ -6,31 +6,29 @@
--- https://github.com/udalov/kotlin-vim (recommended)
--- Note that there is no LICENSE specified yet.
local util = require 'lspconfig/util'
local util = require "lspconfig/util"
local bin_name = DATA_PATH .. "/lspinstall/kotlin/server/bin/kotlin-language-server"
if vim.fn.has('win32') == 1 then
bin_name = bin_name..".bat"
if vim.fn.has "win32" == 1 then
bin_name = bin_name .. ".bat"
end
local root_files = {
'settings.gradle', -- Gradle (multi-project)
'settings.gradle.kts', -- Gradle (multi-project)
'build.xml', -- Ant
'pom.xml', -- Maven
"settings.gradle", -- Gradle (multi-project)
"settings.gradle.kts", -- Gradle (multi-project)
"build.xml", -- Ant
"pom.xml", -- Maven
}
local fallback_root_files = {
'build.gradle', -- Gradle
'build.gradle.kts', -- Gradle
"build.gradle", -- Gradle
"build.gradle.kts", -- Gradle
}
require'lspconfig'.kotlin_language_server.setup {
cmd = {bin_name},
on_attach = require'lsp'.common_on_attach,
root_dir = function(fname)
return util.root_pattern(unpack(root_files))(fname) or
util.root_pattern(unpack(fallback_root_files))(fname)
end
require("lspconfig").kotlin_language_server.setup {
cmd = { bin_name },
on_attach = require("lsp").common_on_attach,
root_dir = function(fname)
return util.root_pattern(unpack(root_files))(fname) or util.root_pattern(unpack(fallback_root_files))(fname)
end,
}

View file

@ -2,71 +2,41 @@
local sumneko_root_path = DATA_PATH .. "/lspinstall/lua"
local sumneko_binary = sumneko_root_path .. "/sumneko-lua-language-server"
require'lspconfig'.sumneko_lua.setup {
cmd = {sumneko_binary, "-E", sumneko_root_path .. "/main.lua"},
on_attach = require'lsp'.common_on_attach,
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 = vim.split(package.path, ';')
},
diagnostics = {
-- Get the language server to recognize the `vim` global
globals = {'vim'}
},
workspace = {
-- Make the server aware of Neovim runtime files
library = {
[vim.fn.expand('$VIMRUNTIME/lua')] = true,
[vim.fn.expand('$VIMRUNTIME/lua/vim/lsp')] = true
},
maxPreload = 100000,
preloadFileSize = 1000
}
}
}
require("lspconfig").sumneko_lua.setup {
cmd = { sumneko_binary, "-E", sumneko_root_path .. "/main.lua" },
on_attach = require("lsp").common_on_attach,
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 = vim.split(package.path, ";"),
},
diagnostics = {
-- Get the language server to recognize the `vim` global
globals = { "vim" },
},
workspace = {
-- Make the server aware of Neovim runtime files
library = {
[vim.fn.expand "$VIMRUNTIME/lua"] = true,
[vim.fn.expand "$VIMRUNTIME/lua/vim/lsp"] = true,
},
maxPreload = 100000,
preloadFileSize = 1000,
},
},
},
}
if O.lang.lua.autoformat then
require('lv-utils').define_augroups({
_lua_autoformat = {
{
'BufWritePre', '*.lua',
'lua vim.lsp.buf.formatting_sync(nil, 1000)'
}
}
})
require("lv-utils").define_augroups {
_lua_autoformat = {
{
"BufWritePre",
"*.lua",
"lua vim.lsp.buf.formatting_sync(nil, 1000)",
},
},
}
end
local lua_arguments = {}
local luaFormat = {
formatCommand = "lua-format -i --no-keep-simple-function-one-line --column-limit=80",
formatStdin = true
}
local lua_fmt = {
formatCommand = "luafmt --indent-count 2 --line-width 120 --stdin",
formatStdin = true
}
if O.lang.lua.formatter == 'lua-format' then
table.insert(lua_arguments, luaFormat)
elseif O.lang.lua.formatter == 'lua-fmt' then
table.insert(lua_arguments, lua_fmt)
end
require"lspconfig".efm.setup {
-- init_options = {initializationOptions},
cmd = {DATA_PATH .. "/lspinstall/efm/efm-langserver"},
init_options = {documentFormatting = true, codeAction = false},
filetypes = {"lua"},
settings = {
rootMarkers = {".git/"},
languages = {
lua = lua_arguments,
}
}
}

View file

@ -1,4 +1,23 @@
require'lspconfig'.intelephense.setup {
cmd = { DATA_PATH .. "/lspinstall/php/node_modules/.bin/intelephense", "--stdio" },
on_attach = require'lsp'.common_on_attach
}
require("lspconfig").intelephense.setup {
cmd = { DATA_PATH .. "/lspinstall/php/node_modules/.bin/intelephense", "--stdio" },
on_attach = require("lsp").common_on_attach,
handlers = {
["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, {
virtual_text = O.lang.php.diagnostics.virtual_text,
signs = O.lang.php.diagnostics.signs,
underline = O.lang.php.diagnostics.underline,
update_in_insert = true,
}),
},
filetypes = O.lang.php.filetypes,
settings = {
intelephense = {
format = {
braces = O.lang.php.format.braces,
},
environment = {
phpVersion = O.lang.php.environment.php_version,
},
},
},
}

View file

@ -2,86 +2,64 @@ local python_arguments = {}
-- TODO replace with path argument
local flake8 = {
LintCommand = "flake8 --ignore=E501 --stdin-display-name ${INPUT} -",
lintStdin = true,
lintFormats = {"%f:%l:%c: %m"}
LintCommand = "flake8 --ignore=E501 --stdin-display-name ${INPUT} -",
lintStdin = true,
lintFormats = { "%f:%l:%c: %m" },
}
local isort = {formatCommand = "isort --quiet -", formatStdin = true}
local isort = { formatCommand = "isort --quiet -", formatStdin = true }
local yapf = {formatCommand = "yapf --quiet", formatStdin = true}
local black = {formatCommand = "black --quiet -", formatStdin = true}
local yapf = { formatCommand = "yapf --quiet", formatStdin = true }
local black = { formatCommand = "black --quiet -", formatStdin = true }
if O.lang.python.linter == 'flake8' then table.insert(python_arguments, flake8) end
if O.lang.python.isort then table.insert(python_arguments, isort) end
if O.lang.python.formatter == 'yapf' then
table.insert(python_arguments, yapf)
elseif O.lang.python.formatter == 'black' then
table.insert(python_arguments, black)
if O.lang.python.linter == "flake8" then
table.insert(python_arguments, flake8)
end
require"lspconfig".efm.setup {
-- init_options = {initializationOptions},
cmd = {DATA_PATH .. "/lspinstall/efm/efm-langserver"},
init_options = {documentFormatting = true, codeAction = false},
filetypes = {"python"},
settings = {
rootMarkers = {".git/", "requirements.txt"},
languages = {
python = python_arguments,
}
}
if O.lang.python.isort then
table.insert(python_arguments, isort)
end
require("lspconfig").efm.setup {
-- init_options = {initializationOptions},
cmd = { DATA_PATH .. "/lspinstall/efm/efm-langserver" },
init_options = { documentFormatting = true, codeAction = false },
filetypes = { "python" },
settings = {
rootMarkers = { ".git/", "requirements.txt" },
languages = {
python = python_arguments,
},
},
}
-- npm i -g pyright
require'lspconfig'.pyright.setup {
cmd = {
DATA_PATH .. "/lspinstall/python/node_modules/.bin/pyright-langserver",
"--stdio"
require("lspconfig").pyright.setup {
cmd = {
DATA_PATH .. "/lspinstall/python/node_modules/.bin/pyright-langserver",
"--stdio",
},
on_attach = require("lsp").common_on_attach,
handlers = {
["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, {
virtual_text = O.lang.python.diagnostics.virtual_text,
signs = O.lang.python.diagnostics.signs,
underline = O.lang.python.diagnostics.underline,
update_in_insert = true,
}),
},
settings = {
python = {
analysis = {
typeCheckingMode = O.lang.python.analysis.type_checking,
autoSearchPaths = O.lang.python.analysis.auto_search_paths,
useLibraryCodeForTypes = O.lang.python.analysis.use_library_code_types,
},
},
on_attach = require'lsp'.common_on_attach,
handlers = {
["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic
.on_publish_diagnostics,
{
virtual_text = O.lang.python.diagnostics.virtual_text,
signs = O.lang.python.diagnostics.signs,
underline = O.lang.python.diagnostics.underline,
update_in_insert = true
})
},
settings = {
python = {
analysis = {
typeCheckingMode = O.lang.python.analysis.type_checking,
autoSearchPaths = O.lang.python.analysis.auto_search_paths,
useLibraryCodeForTypes = O.lang.python.analysis
.use_library_code_types
}
}
}
},
}
if O.lang.python.autoformat then
require('lv-utils').define_augroups({
_python_autoformat = {
{
'BufWritePre', '*.py',
'lua vim.lsp.buf.formatting_sync(nil, 1000)'
}
}
})
if O.plugin.debug.active and O.plugin.dap_install.active then
local dap_install = require("dap-install")
dap_install.config("python_dbg", {})
end

View file

@ -1,24 +1,14 @@
-- If you are using rvm, make sure to change below configuration
require'lspconfig'.solargraph.setup {
cmd = {DATA_PATH .. "/lspinstall/ruby/solargraph/solargraph", "--stdio"},
on_attach = require'lsp'.common_on_attach,
handlers = {
["textDocument/publishDiagnostics"] = vim.lsp.with(
vim.lsp.diagnostic.on_publish_diagnostics, {
virtual_text = O.lang.ruby.diagnostics.virtual_text,
signs = O.lang.ruby.diagnostics.signs,
underline = O.lang.ruby.diagnostics.underline,
update_in_insert = true
})
},
filetypes = O.lang.ruby.filetypes
require("lspconfig").solargraph.setup {
cmd = { DATA_PATH .. "/lspinstall/ruby/solargraph/solargraph", "stdio" },
on_attach = require("lsp").common_on_attach,
handlers = {
["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, {
virtual_text = O.lang.ruby.diagnostics.virtual_text,
signs = O.lang.ruby.diagnostics.signs,
underline = O.lang.ruby.diagnostics.underline,
update_in_insert = true,
}),
},
filetypes = O.lang.ruby.filetypes,
}
if O.lang.ruby.autoformat then
require('lv-utils').define_augroups({
_ruby_format = {
{'BufWritePre', '*.rb', 'lua vim.lsp.buf.formatting_sync(nil,1000)'}
}
})
end

View file

@ -1,99 +1,93 @@
if O.lang.rust.rust_tools.active then
local opts = {
tools = { -- rust-tools options
-- automatically set inlay hints (type hints)
-- There is an issue due to which the hints are not applied on the first
-- opened file. For now, write to the file to trigger a reapplication of
-- the hints or just run :RustSetInlayHints.
-- default: true
autoSetHints = true,
local opts = {
tools = { -- rust-tools options
-- automatically set inlay hints (type hints)
-- There is an issue due to which the hints are not applied on the first
-- opened file. For now, write to the file to trigger a reapplication of
-- the hints or just run :RustSetInlayHints.
-- default: true
autoSetHints = true,
-- whether to show hover actions inside the hover window
-- this overrides the default hover handler
-- default: true
hover_with_actions = true,
-- whether to show hover actions inside the hover window
-- this overrides the default hover handler
-- default: true
hover_with_actions = true,
runnables = {
-- whether to use telescope for selection menu or not
-- default: true
use_telescope = true
runnables = {
-- whether to use telescope for selection menu or not
-- default: true
use_telescope = true,
-- rest of the opts are forwarded to telescope
},
-- rest of the opts are forwarded to telescope
},
inlay_hints = {
-- wheter to show parameter hints with the inlay hints or not
-- default: true
show_parameter_hints = true,
inlay_hints = {
-- wheter to show parameter hints with the inlay hints or not
-- default: true
show_parameter_hints = true,
-- prefix for parameter hints
-- default: "<-"
parameter_hints_prefix = "<-",
-- prefix for parameter hints
-- default: "<-"
parameter_hints_prefix = "<-",
-- prefix for all the other hints (type, chaining)
-- default: "=>"
other_hints_prefix = "=>",
-- prefix for all the other hints (type, chaining)
-- default: "=>"
other_hints_prefix = "=>",
-- whether to align to the lenght of the longest line in the file
max_len_align = false,
-- whether to align to the lenght of the longest line in the file
max_len_align = false,
-- padding from the left if max_len_align is true
max_len_align_padding = 1,
-- padding from the left if max_len_align is true
max_len_align_padding = 1,
-- whether to align to the extreme right or not
right_align = false,
-- whether to align to the extreme right or not
right_align = false,
-- padding from the right if right_align is true
right_align_padding = 7
},
-- padding from the right if right_align is true
right_align_padding = 7,
},
hover_actions = {
-- the border that is used for the hover window
-- see vim.api.nvim_open_win()
border = {
{"", "FloatBorder"}, {"", "FloatBorder"},
{"", "FloatBorder"}, {"", "FloatBorder"},
{"", "FloatBorder"}, {"", "FloatBorder"},
{"", "FloatBorder"}, {"", "FloatBorder"}
}
}
hover_actions = {
-- the border that is used for the hover window
-- see vim.api.nvim_open_win()
border = {
{ "", "FloatBorder" },
{ "", "FloatBorder" },
{ "", "FloatBorder" },
{ "", "FloatBorder" },
{ "", "FloatBorder" },
{ "", "FloatBorder" },
{ "", "FloatBorder" },
{ "", "FloatBorder" },
},
},
},
-- all the opts to send to nvim-lspconfig
-- these override the defaults set by rust-tools.nvim
-- see https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#rust_analyzer
server = {
cmd = {DATA_PATH .. "/lspinstall/rust/rust-analyzer"},
on_attach = require'lsp'.common_on_attach
} -- rust-analyser options
}
require('rust-tools').setup(opts)
-- all the opts to send to nvim-lspconfig
-- these override the defaults set by rust-tools.nvim
-- see https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#rust_analyzer
server = {
cmd = { DATA_PATH .. "/lspinstall/rust/rust-analyzer" },
on_attach = require("lsp").common_on_attach,
}, -- rust-analyser options
}
require("rust-tools").setup(opts)
else
require'lspconfig'.rust_analyzer.setup {
cmd = {DATA_PATH .. "/lspinstall/rust/rust-analyzer"},
on_attach = require'lsp'.common_on_attach,
filetypes = {"rust"},
root_dir = require'lspconfig.util'.root_pattern("Cargo.toml",
"rust-project.json")
}
require("lspconfig").rust_analyzer.setup {
cmd = { DATA_PATH .. "/lspinstall/rust/rust-analyzer" },
on_attach = require("lsp").common_on_attach,
filetypes = { "rust" },
root_dir = require("lspconfig.util").root_pattern("Cargo.toml", "rust-project.json"),
}
end
-- TODO fix these mappings
vim.api.nvim_exec([[
vim.api.nvim_exec(
[[
autocmd Filetype rust nnoremap <leader>lm <Cmd>RustExpandMacro<CR>
autocmd Filetype rust nnoremap <leader>lH <Cmd>RustToggleInlayHints<CR>
autocmd Filetype rust nnoremap <leader>le <Cmd>RustRunnables<CR>
autocmd Filetype rust nnoremap <leader>lh <Cmd>RustHoverActions<CR>
]], true)
if O.lang.rust.autoformat then
require('lv-utils').define_augroups({
_rust_format = {
{'BufWritePre', '*.rs', 'lua vim.lsp.buf.formatting_sync(nil,1000)'}
}
})
end
]],
true
)

View file

@ -1,33 +1,33 @@
-- npm i -g bash-language-server
require'lspconfig'.bashls.setup {
cmd = {DATA_PATH .. "/lspinstall/bash/node_modules/.bin/bash-language-server", "start"},
on_attach = require'lsp'.common_on_attach,
filetypes = { "sh", "zsh" }
require("lspconfig").bashls.setup {
cmd = { DATA_PATH .. "/lspinstall/bash/node_modules/.bin/bash-language-server", "start" },
on_attach = require("lsp").common_on_attach,
filetypes = { "sh", "zsh" },
}
-- sh
local sh_arguments = {}
local shfmt = {formatCommand = 'shfmt -ci -s -bn', formatStdin = true}
local shfmt = { formatCommand = "shfmt -ci -s -bn", formatStdin = true }
local shellcheck = {
LintCommand = 'shellcheck -f gcc -x',
lintFormats = {'%f:%l:%c: %trror: %m', '%f:%l:%c: %tarning: %m', '%f:%l:%c: %tote: %m'}
LintCommand = "shellcheck -f gcc -x",
lintFormats = { "%f:%l:%c: %trror: %m", "%f:%l:%c: %tarning: %m", "%f:%l:%c: %tote: %m" },
}
if O.lang.sh.formatter == 'shfmt' then table.insert(sh_arguments, shfmt) end
if O.lang.sh.linter == "shellcheck" then
table.insert(sh_arguments, shellcheck)
end
if O.lang.sh.linter == 'shellcheck' then table.insert(sh_arguments, shellcheck) end
require"lspconfig".efm.setup {
-- init_options = {initializationOptions},
cmd = {DATA_PATH .. "/lspinstall/efm/efm-langserver"},
init_options = {documentFormatting = true, codeAction = false},
filetypes = {"sh"},
settings = {
rootMarkers = {".git/"},
languages = {
sh = sh_arguments,
}
}
require("lspconfig").efm.setup {
-- init_options = {initializationOptions},
cmd = { DATA_PATH .. "/lspinstall/efm/efm-langserver" },
init_options = { documentFormatting = true, codeAction = false },
filetypes = { "sh" },
settings = {
rootMarkers = { ".git/" },
languages = {
sh = sh_arguments,
},
},
}

View file

@ -1,4 +1,4 @@
require'lspconfig'.texlab.setup{
cmd = {DATA_PATH .. "/lspinstall/latex/texlab"},
on_attach = require'lsp'.common_on_attach
require("lspconfig").texlab.setup {
cmd = { DATA_PATH .. "/lspinstall/latex/texlab" },
on_attach = require("lsp").common_on_attach,
}

View file

@ -1,5 +1,5 @@
require'lspconfig'.terraformls.setup{
cmd = {DATA_PATH .. "/lspinstall/terraform/terraform-ls", "serve"},
on_attach = require'lsp'.common_on_attach,
filetypes = { "tf", "terraform", "hcl" }
require("lspconfig").terraformls.setup {
cmd = { DATA_PATH .. "/lspinstall/terraform/terraform-ls", "serve" },
on_attach = require("lsp").common_on_attach,
filetypes = { "tf", "terraform", "hcl" },
}

View file

@ -7,64 +7,32 @@
-- require'completion'.on_attach(client)
-- require'illuminate'.on_attach(client)
-- end
require'lspconfig'.tsserver.setup {
cmd = {
DATA_PATH ..
"/lspinstall/typescript/node_modules/.bin/typescript-language-server",
"--stdio"
},
filetypes = {
"javascript", "javascriptreact", "javascript.jsx", "typescript",
"typescriptreact", "typescript.tsx"
},
on_attach = require'lsp'.tsserver_on_attach,
-- This makes sure tsserver is not used for formatting (I prefer prettier)
-- on_attach = require'lsp'.common_on_attach,
root_dir = require('lspconfig/util').root_pattern("package.json",
"tsconfig.json",
"jsconfig.json", ".git"),
settings = {documentFormatting = false},
handlers = {
["textDocument/publishDiagnostics"] = vim.lsp.with(
vim.lsp.diagnostic.on_publish_diagnostics, {
virtual_text = O.lang.tsserver.diagnostics.virtual_text,
signs = O.lang.tsserver.diagnostics.signs,
underline = O.lang.tsserver.diagnostics.underline,
update_in_insert = true
})
}
require("lspconfig").tsserver.setup {
cmd = {
DATA_PATH .. "/lspinstall/typescript/node_modules/.bin/typescript-language-server",
"--stdio",
},
filetypes = {
"javascript",
"javascriptreact",
"javascript.jsx",
"typescript",
"typescriptreact",
"typescript.tsx",
},
on_attach = require("lsp").tsserver_on_attach,
-- This makes sure tsserver is not used for formatting (I prefer prettier)
-- on_attach = require'lsp'.common_on_attach,
root_dir = require("lspconfig/util").root_pattern("package.json", "tsconfig.json", "jsconfig.json", ".git"),
settings = { documentFormatting = false },
handlers = {
["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, {
virtual_text = O.lang.tsserver.diagnostics.virtual_text,
signs = O.lang.tsserver.diagnostics.signs,
underline = O.lang.tsserver.diagnostics.underline,
update_in_insert = true,
}),
},
}
require'lsp.ts-fmt-lint'.setup()
if O.lang.tsserver.autoformat then
require('lv-utils').define_augroups({
_javascript_autoformat = {
{
'BufWritePre', '*.js',
'lua vim.lsp.buf.formatting_sync(nil, 1000)'
}
},
_javascriptreact_autoformat = {
{
'BufWritePre', '*.jsx',
'lua vim.lsp.buf.formatting_sync(nil, 1000)'
}
},
_typescript_autoformat = {
{
'BufWritePre', '*.ts',
'lua vim.lsp.buf.formatting_sync(nil, 1000)'
}
},
_typescriptreact_autoformat = {
{
'BufWritePre', '*.tsx',
'lua vim.lsp.buf.formatting_sync(nil, 1000)'
}
}
})
end
vim.cmd("setl ts=2 sw=2")
require("lsp.ts-fmt-lint").setup()
vim.cmd "setl ts=2 sw=2"

View file

@ -7,64 +7,32 @@
-- require'completion'.on_attach(client)
-- require'illuminate'.on_attach(client)
-- end
require'lspconfig'.tsserver.setup {
cmd = {
DATA_PATH ..
"/lspinstall/typescript/node_modules/.bin/typescript-language-server",
"--stdio"
},
filetypes = {
"javascript", "javascriptreact", "javascript.jsx", "typescript",
"typescriptreact", "typescript.tsx"
},
on_attach = require'lsp'.tsserver_on_attach,
-- This makes sure tsserver is not used for formatting (I prefer prettier)
-- on_attach = require'lsp'.common_on_attach,
root_dir = require('lspconfig/util').root_pattern("package.json",
"tsconfig.json",
"jsconfig.json", ".git"),
settings = {documentFormatting = false},
handlers = {
["textDocument/publishDiagnostics"] = vim.lsp.with(
vim.lsp.diagnostic.on_publish_diagnostics, {
virtual_text = O.lang.tsserver.diagnostics.virtual_text,
signs = O.lang.tsserver.diagnostics.signs,
underline = O.lang.tsserver.diagnostics.underline,
update_in_insert = true
})
}
require("lspconfig").tsserver.setup {
cmd = {
DATA_PATH .. "/lspinstall/typescript/node_modules/.bin/typescript-language-server",
"--stdio",
},
filetypes = {
"javascript",
"javascriptreact",
"javascript.jsx",
"typescript",
"typescriptreact",
"typescript.tsx",
},
on_attach = require("lsp").tsserver_on_attach,
-- This makes sure tsserver is not used for formatting (I prefer prettier)
-- on_attach = require'lsp'.common_on_attach,
root_dir = require("lspconfig/util").root_pattern("package.json", "tsconfig.json", "jsconfig.json", ".git"),
settings = { documentFormatting = false },
handlers = {
["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, {
virtual_text = O.lang.tsserver.diagnostics.virtual_text,
signs = O.lang.tsserver.diagnostics.signs,
underline = O.lang.tsserver.diagnostics.underline,
update_in_insert = true,
}),
},
}
require'lsp.ts-fmt-lint'.setup()
if O.lang.tsserver.autoformat then
require('lv-utils').define_augroups({
_javascript_autoformat = {
{
'BufWritePre', '*.js',
'lua vim.lsp.buf.formatting_sync(nil, 1000)'
}
},
_javascriptreact_autoformat = {
{
'BufWritePre', '*.jsx',
'lua vim.lsp.buf.formatting_sync(nil, 1000)'
}
},
_typescript_autoformat = {
{
'BufWritePre', '*.ts',
'lua vim.lsp.buf.formatting_sync(nil, 1000)'
}
},
_typescriptreact_autoformat = {
{
'BufWritePre', '*.tsx',
'lua vim.lsp.buf.formatting_sync(nil, 1000)'
}
}
})
end
vim.cmd("setl ts=2 sw=2")
require("lsp.ts-fmt-lint").setup()
vim.cmd "setl ts=2 sw=2"

View file

@ -1,5 +1,5 @@
-- npm install -g vim-language-server
require'lspconfig'.vimls.setup {
cmd = {DATA_PATH .. "/lspinstall/vim/node_modules/.bin/vim-language-server", "--stdio"},
on_attach = require'lsp'.common_on_attach
require("lspconfig").vimls.setup {
cmd = { DATA_PATH .. "/lspinstall/vim/node_modules/.bin/vim-language-server", "--stdio" },
on_attach = require("lsp").common_on_attach,
}

View file

@ -1,5 +1,5 @@
require('lspconfig').vuels.setup {
cmd = {DATA_PATH .. "/lspinstall/vue/node_modules/.bin/vls", "--stdio"},
on_attach = require'lsp'.common_on_attach,
root_dir = require('lspconfig').util.root_pattern(".git", ".")
require("lspconfig").vuels.setup {
cmd = { DATA_PATH .. "/lspinstall/vue/node_modules/.bin/vls", "--stdio" },
on_attach = require("lsp").common_on_attach,
root_dir = require("lspconfig").util.root_pattern(".git", "."),
}

View file

@ -1,6 +1,6 @@
-- npm install -g yaml-language-server
require'lspconfig'.yamlls.setup{
cmd = {DATA_PATH .. "/lspinstall/yaml/node_modules/.bin/yaml-language-server", "--stdio"},
on_attach = require'lsp'.common_on_attach,
require("lspconfig").yamlls.setup {
cmd = { DATA_PATH .. "/lspinstall/yaml/node_modules/.bin/yaml-language-server", "--stdio" },
on_attach = require("lsp").common_on_attach,
}
vim.cmd("setl ts=2 sw=2 ts=2 ai et")
vim.cmd "setl ts=2 sw=2 ts=2 ai et"

View file

@ -1,15 +1,14 @@
-- Because lspinstall don't support zig yet,
-- So we need zls preset in global lib
-- Further custom install zls in
-- Further custom install zls in
-- https://github.com/zigtools/zls/wiki/Downloading-and-Building-ZLS
require'lspconfig'.zls.setup{
root_dir = require'lspconfig'.util.root_pattern(".git", "build.zig", "zls.json"),
on_attach = require'lsp'.common_on_attach,
require("lspconfig").zls.setup {
root_dir = require("lspconfig").util.root_pattern(".git", "build.zig", "zls.json"),
on_attach = require("lsp").common_on_attach,
}
require('lv-utils').define_augroups({
_zig_autoformat = {
{'BufWritePre', '*.zig', 'lua vim.lsp.buf.formatting_sync(nil, 1000)'},
{'BufEnter', '*.zig', ':lua vim.api.nvim_buf_set_option(0, "commentstring", "// %s")'}
}
})
vim.cmd("setl expandtab tabstop=8 softtabstop=4 shiftwidth=4")
require("lv-utils").define_augroups {
_zig_autoformat = {
{ "BufEnter", "*.zig", ':lua vim.api.nvim_buf_set_option(0, "commentstring", "// %s")' },
},
}
vim.cmd "setl expandtab tabstop=8 softtabstop=4 shiftwidth=4"

View file

@ -1,40 +1,38 @@
-- npm i -g bash-language-server
require'lspconfig'.bashls.setup {
cmd = {DATA_PATH .. "/lspinstall/bash/node_modules/.bin/bash-language-server", "start"},
on_attach = require'lsp'.common_on_attach,
filetypes = { "sh", "zsh" }
require("lspconfig").bashls.setup {
cmd = { DATA_PATH .. "/lspinstall/bash/node_modules/.bin/bash-language-server", "start" },
on_attach = require("lsp").common_on_attach,
filetypes = { "sh", "zsh" },
}
-- npm i -g bash-language-server
require'lspconfig'.bashls.setup {
cmd = {DATA_PATH .. "/lspinstall/bash/node_modules/.bin/bash-language-server", "start"},
on_attach = require'lsp'.common_on_attach,
filetypes = { "sh", "zsh" }
require("lspconfig").bashls.setup {
cmd = { DATA_PATH .. "/lspinstall/bash/node_modules/.bin/bash-language-server", "start" },
on_attach = require("lsp").common_on_attach,
filetypes = { "sh", "zsh" },
}
-- sh
local sh_arguments = {}
local shfmt = {formatCommand = 'shfmt -ci -s -bn', formatStdin = true}
local shellcheck = {
LintCommand = 'shellcheck -f gcc -x',
lintFormats = {'%f:%l:%c: %trror: %m', '%f:%l:%c: %tarning: %m', '%f:%l:%c: %tote: %m'}
LintCommand = "shellcheck -f gcc -x",
lintFormats = { "%f:%l:%c: %trror: %m", "%f:%l:%c: %tarning: %m", "%f:%l:%c: %tote: %m" },
}
if O.lang.sh.formatter == 'shfmt' then table.insert(sh_arguments, shfmt) end
if O.lang.sh.linter == "shellcheck" then
table.insert(sh_arguments, shellcheck)
end
if O.lang.sh.linter == 'shellcheck' then table.insert(sh_arguments, shellcheck) end
require"lspconfig".efm.setup {
-- init_options = {initializationOptions},
cmd = {DATA_PATH .. "/lspinstall/efm/efm-langserver"},
init_options = {documentFormatting = true, codeAction = false},
filetypes = {"zsh"},
settings = {
rootMarkers = {".git/"},
languages = {
sh = sh_arguments,
}
}
require("lspconfig").efm.setup {
-- init_options = {initializationOptions},
cmd = { DATA_PATH .. "/lspinstall/efm/efm-langserver" },
init_options = { documentFormatting = true, codeAction = false },
filetypes = { "zsh" },
settings = {
rootMarkers = { ".git/" },
languages = {
sh = sh_arguments,
},
},
}

View file

@ -1,13 +1,26 @@
require('default-config')
vim.cmd('luafile ' .. CONFIG_PATH .. '/lv-config.lua')
require('settings')
require('plugins')
vim.g.colors_name = O.colorscheme
vim.g.syntax = true
require('lv-utils')
require('keymappings')
require('lv-galaxyline')
require('lv-treesitter')
require('lv-which-key')
require('lsp')
if O.lang.emmet.active then require('lsp.emmet-ls') end
require "default-config"
require "keymappings"
vim.cmd("luafile " .. CONFIG_PATH .. "/lv-config.lua")
require "settings"
require "plugins"
require "lv-utils"
require "lv-galaxyline"
require "lv-treesitter"
require "lv-which-key"
require "lsp"
if O.lang.emmet.active then
require "lsp.emmet-ls"
end
-- autoformat
if O.format_on_save then
require("lv-utils").define_augroups {
autoformat = {
{
"BufWritePre",
"*",
[[try | undojoin | Neoformat | catch /^Vim\%((\a\+)\)\=:E790/ | finally | silent Neoformat | endtry]],
},
},
}
end

View file

@ -1,264 +1,243 @@
CONFIG_PATH = vim.fn.stdpath('config')
DATA_PATH = vim.fn.stdpath('data')
CACHE_PATH = vim.fn.stdpath('cache')
TERMINAL = vim.fn.expand('$TERMINAL')
CONFIG_PATH = vim.fn.stdpath "config"
DATA_PATH = vim.fn.stdpath "data"
CACHE_PATH = vim.fn.stdpath "cache"
TERMINAL = vim.fn.expand "$TERMINAL"
O = {
auto_close_tree = 0,
auto_complete = true,
colorscheme = 'lunar',
hidden_files = true,
wrap_lines = false,
number = true,
relative_number = true,
cursorline = true,
shell = 'bash',
timeoutlen = 100,
nvim_tree_disable_netrw = 0,
extras = false,
ignore_case = true,
smart_case = true,
lushmode = false,
hl_search = false,
transparent_window = false;
leader_key = "space";
format_on_save = true,
auto_close_tree = 0,
auto_complete = true,
colorscheme = "lunar",
hidden_files = true,
wrap_lines = false,
number = true,
relative_number = true,
cursorline = true,
shell = "bash",
timeoutlen = 100,
nvim_tree_disable_netrw = 0,
ignore_case = true,
smart_case = true,
lushmode = false,
hl_search = false,
transparent_window = false,
leader_key = "space",
vnsip_dir = vim.fn.stdpath "config" .. "/snippets",
-- @usage pass a table with your desired languages
treesitter = {
ensure_installed = "all",
ignore_install = {"haskell"},
highlight = {enabled = true},
rainbow = {enabled = false}
-- @usage pass a table with your desired languages
treesitter = {
ensure_installed = "all",
ignore_install = { "haskell" },
highlight = { enabled = true },
rainbow = { enabled = false },
},
lsp = {
popup_border = "single",
},
database = { save_location = "~/.config/nvcode_db", auto_execute = 1 },
plugin = {
-- TODO remove non built-ins
-- Builtins
dashboard = { active = false },
colorizer = { active = false },
zen = { active = false },
ts_playground = { active = false },
ts_context_commentstring = { active = false },
telescope_fzy = { active = false },
telescope_project = { active = false },
indent_line = { active = false },
symbol_outline = { active = false },
debug = { active = false },
dap_install = { active = false },
lazygit = { active = false },
lush = { active = false },
diffview = { active = false },
----------------------------------------------------------------------
-- Non builtins
octo = { active = false },
gitlinker = { active = false },
todo_comments = { active = false },
gist = { active = false },
git_blame = { active = false },
lsp_colors = { active = false },
ranger = { active = false },
hop = { active = false },
dial = { active = false },
matchup = { active = false },
numb = { active = false },
bqf = { active = false },
trouble = { active = false },
floatterm = { active = false },
spectre = { active = false },
lsp_rooter = { active = false },
markdown_preview = { active = false },
bracey = { active = false },
codi = { active = false },
sanegx = { active = false },
snap = { active = false },
tabnine = { active = false },
},
custom_plugins = {
-- use lv-config.lua for this not put here
},
user_autocommands = {
{ "FileType", "qf", "set nobuflisted" },
},
lang = {
python = {
linter = "",
isort = false,
diagnostics = {
virtual_text = { spacing = 0, prefix = "" },
signs = true,
underline = true,
},
analysis = {
type_checking = "basic",
auto_search_paths = true,
use_library_code_types = true,
},
},
database = {save_location = '~/.config/nvcode_db', auto_execute = 1},
plugin = {
hop = {active = false},
dial = {active = false},
dashboard = {active = false},
matchup = {active = false},
colorizer = {active = false},
numb = {active = false},
zen = {active = false},
ts_playground = {active = false},
indent_line = {active = false},
ts_context_commentstring = {active = false},
symbol_outline = {active = false},
debug = {active = false},
bqf = {active = false},
trouble = {active = false},
floatterm = {active = false},
spectre = {active = false},
lsp_rooter = {active = false},
markdown_preview = {active = false},
codi = {active = false},
telescope_fzy = {active = false},
sanegx = {active = false},
snap = {active = false},
ranger = {active = false},
todo_comments = {active = false},
lsp_colors = {active = false},
git_blame = {active = false},
gist = {active = false},
gitlinker = {active = false},
lazygit = {active = false},
octo = {active = false},
lush = {active = false},
diffview = {active = false},
bracey = {active = false},
telescope_project = {active = false},
dap_install = {active = false}
dart = {
sdk_path = "/usr/lib/dart/bin/snapshots/analysis_server.dart.snapshot",
},
lang = {
python = {
linter = '',
-- @usage can be 'yapf', 'black'
formatter = '',
autoformat = false,
isort = false,
diagnostics = {
virtual_text = {spacing = 0, prefix = ""},
signs = true,
underline = true
},
analysis = {
type_checking = "basic",
auto_search_paths = true,
use_library_code_types = true
}
},
dart = {
sdk_path = '/usr/lib/dart/bin/snapshots/analysis_server.dart.snapshot'
},
lua = {
-- @usage can be 'lua-format'
formatter = '',
autoformat = false,
diagnostics = {
virtual_text = {spacing = 0, prefix = ""},
signs = true,
underline = true
}
},
sh = {
-- @usage can be 'shellcheck'
linter = '',
-- @usage can be 'shfmt'
formatter = '',
autoformat = false,
diagnostics = {
virtual_text = {spacing = 0, prefix = ""},
signs = true,
underline = true
}
},
tsserver = {
-- @usage can be 'eslint'
linter = '',
-- @usage can be 'prettier'
formatter = '',
autoformat = false,
diagnostics = {
virtual_text = {spacing = 0, prefix = ""},
signs = true,
underline = true
}
},
json = {
-- @usage can be 'prettier'
formatter = '',
autoformat = false,
diagnostics = {
virtual_text = {spacing = 0, prefix = ""},
signs = true,
underline = true
}
},
tailwindcss = {
filetypes = {
'html', 'css', 'scss', 'javascript', 'javascriptreact',
'typescript', 'typescriptreact'
}
},
clang = {
diagnostics = {
virtual_text = {spacing = 0, prefix = ""},
signs = true,
underline = true,
},
cross_file_rename = true,
header_insertion = 'never',
autoformat = false -- update this to true for enabling autoformat
},
ruby = {
diagnostics = {
virtualtext = {spacing = 0, prefix = ""},
signs = true,
underline = true
},
filetypes = {'rb', 'erb', 'rakefile', 'ruby'}
},
go = {},
elixir = {},
vim = {},
yaml = {},
terraform = {},
rust = {
rust_tools = {
active = false
},
linter = '',
formatter = '',
autoformat = false,
diagnostics = {
virtual_text = {spacing = 0, prefix = ""},
signs = true,
underline = true
}
},
svelte = {},
php = {},
latex = {},
kotlin = {},
html = {},
elm = {},
emmet = {active = true},
graphql = {},
efm = {},
docker = {},
cmake = {},
java = {},
css = {
formatter = '',
autoformat = false,
virtual_text = true
}
lua = {
diagnostics = {
virtual_text = { spacing = 0, prefix = "" },
signs = true,
underline = true,
},
},
dashboard = {
custom_header = {
'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⣀⣀⣀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀',
' ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣤⣶⣾⠿⠿⠟⠛⠛⠛⠛⠿⠿⣿⣷⣤⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀',
' ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣾⡿⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠿⣷⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀',
'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣤⡿⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⢿⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀',
'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠒⠂⠉⠉⠉⠉⢩⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣷⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀',
'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡀⠀⠀⠀⠀⠀⢰⣿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀',
'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⠠⡀⠀⠀⢀⣾⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀',
'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⢀⣸⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀',
'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡧⢄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀',
'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡇⠀⠈⠁⠒⠤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀',
'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣇⠀⠀⠀⠀⠀⠀⠉⠢⠤⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⡟⠈⠑⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀',
'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠑⠒⠤⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⡇⠀⠀⢀⣣⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀',
'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣷⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠀⠀⠒⠢⠤⠄⣀⣀⠀⠀⠀⢠⣿⡟⠀⠀⠀⣺⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀',
'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠇⠀⠀⠀⠀⠀⣤⡄⠀⠀⢠⣤⡄⠀⢨⣭⣠⣤⣤⣤⡀⠀⠀⢀⣤⣤⣤⣤⡄⠀⠀⠀⣤⣄⣤⣤⣤⠀⠀⣿⣯⠉⠉⣿⡟⠀⠈⢩⣭⣤⣤⠀⠀⠀⠀⣠⣤⣤⣤⣄⣤⣤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀',
'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⠀⠀⠀⠀⠀⠀⣿⠃⠀⠀⣸⣿⠁⠀⣿⣿⠉⠀⠈⣿⡇⠀⠀⠛⠋⠀⠀⢹⣿⠀⠀⠀⣿⠏⠀⠸⠿⠃⠀⣿⣿⠀⣰⡟⠀⠀⠀⠀⠀⢸⣿⠀⠀⠀⠀⣿⡟⢸⣿⡇⢀⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀',
'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⡇⠀⠀⠀⠀⠀⢸⣿⠀⠀⠀⣿⡟⠀⢠⣿⡇⠀⠀⢰⣿⡇⠀⣰⣾⠟⠛⠛⣻⡇⠀⠀⢸⡿⠀⠀⠀⠀⠀⠀⢻⣿⢰⣿⠀⠀⠀⠀⠀⠀⣾⡇⠀⠀⠀⢸⣿⠇⢸⣿⠀⢸⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀',
'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣧⣤⣤⣤⡄⠀⠘⣿⣤⣤⡤⣿⠇⠀⢸⣿⠁⠀⠀⣼⣿⠀⠀⢿⣿⣤⣤⠔⣿⠃⠀⠀⣾⡇⠀⠀⠀⠀⠀⠀⢸⣿⣿⠋⠀⠀⠀⢠⣤⣤⣿⣥⣤⡄⠀⣼⣿⠀⣸⡏⠀⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀',
'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠉⠉⠁⠀⠀⠈⠉⠉⠀⠉⠀⠀⠈⠉⠀⠀⠀⠉⠉⠀⠀⠀⠉⠉⠁⠈⠉⠀⠀⠀⠉⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠀⠀⠀⠀⠈⠉⠉⠉⠉⠉⠁⠀⠉⠁⠀⠉⠁⠀⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀'
},
footer = {'chrisatmachine.com'}
}
}
-- TODO find a new home for these autocommands
require('lv-utils').define_augroups({
_general_settings = {
{
'TextYankPost', '*',
'lua require(\'vim.highlight\').on_yank({higroup = \'Search\', timeout = 200})'
}, {
'BufWinEnter', '*',
'setlocal formatoptions-=c formatoptions-=r formatoptions-=o'
},
{
'BufRead', '*',
'setlocal formatoptions-=c formatoptions-=r formatoptions-=o'
}, {
'BufNewFile', '*',
'setlocal formatoptions-=c formatoptions-=r formatoptions-=o'
}, {'VimLeavePre', '*', 'set title set titleold='},
{'FileType', 'qf', 'set nobuflisted'}
sh = {
-- @usage can be 'shellcheck'
linter = "",
-- @usage can be 'shfmt'
diagnostics = {
virtual_text = { spacing = 0, prefix = "" },
signs = true,
underline = true,
},
},
-- _solidity = {
-- {'BufWinEnter', '.sol', 'setlocal filetype=solidity'}, {'BufRead', '*.sol', 'setlocal filetype=solidity'},
-- {'BufNewFile', '*.sol', 'setlocal filetype=solidity'}
-- },
-- _gemini = {
-- {'BufWinEnter', '.gmi', 'setlocal filetype=markdown'}, {'BufRead', '*.gmi', 'setlocal filetype=markdown'},
-- {'BufNewFile', '*.gmi', 'setlocal filetype=markdown'}
-- },
_markdown = {
{'FileType', 'markdown', 'setlocal wrap'},
{'FileType', 'markdown', 'setlocal spell'}
tsserver = {
-- @usage can be 'eslint'
linter = "",
diagnostics = {
virtual_text = { spacing = 0, prefix = "" },
signs = true,
underline = true,
},
},
_buffer_bindings = {
{'FileType', 'floaterm', 'nnoremap <silent> <buffer> q :q<CR>'}
}
})
json = {
diagnostics = {
virtual_text = { spacing = 0, prefix = "" },
signs = true,
underline = true,
},
},
tailwindcss = {
filetypes = {
"html",
"css",
"scss",
"javascript",
"javascriptreact",
"typescript",
"typescriptreact",
},
},
clang = {
diagnostics = {
virtual_text = { spacing = 0, prefix = "" },
signs = true,
underline = true,
},
cross_file_rename = true,
header_insertion = "never",
},
ruby = {
diagnostics = {
virtualtext = { spacing = 0, prefix = "" },
signs = true,
underline = true,
},
filetypes = { "rb", "erb", "rakefile", "ruby" },
},
go = {},
elixir = {},
vim = {},
yaml = {},
terraform = {},
rust = {
rust_tools = {
active = false,
},
linter = "",
diagnostics = {
virtual_text = { spacing = 0, prefix = "" },
signs = true,
underline = true,
},
},
svelte = {},
php = {
environment = {
php_version = "7.4",
},
diagnostics = {
virtual_text = { spacing = 0, prefix = "" },
signs = true,
underline = true,
},
filetypes = { "php", "phtml" },
},
latex = {},
kotlin = {},
html = {},
elm = {},
emmet = { active = true },
graphql = {},
efm = {},
docker = {},
cmake = {},
java = {},
css = {
virtual_text = true,
},
},
dashboard = {
custom_header = {
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⣀⣀⣀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
" ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣤⣶⣾⠿⠿⠟⠛⠛⠛⠛⠿⠿⣿⣷⣤⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
" ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣾⡿⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠿⣷⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣤⡿⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⢿⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠒⠂⠉⠉⠉⠉⢩⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣷⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡀⠀⠀⠀⠀⠀⢰⣿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⠠⡀⠀⠀⢀⣾⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⢀⣸⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡧⢄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡇⠀⠈⠁⠒⠤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣇⠀⠀⠀⠀⠀⠀⠉⠢⠤⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⡟⠈⠑⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠑⠒⠤⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⡇⠀⠀⢀⣣⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣷⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠀⠀⠒⠢⠤⠄⣀⣀⠀⠀⠀⢠⣿⡟⠀⠀⠀⣺⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠇⠀⠀⠀⠀⠀⣤⡄⠀⠀⢠⣤⡄⠀⢨⣭⣠⣤⣤⣤⡀⠀⠀⢀⣤⣤⣤⣤⡄⠀⠀⠀⣤⣄⣤⣤⣤⠀⠀⣿⣯⠉⠉⣿⡟⠀⠈⢩⣭⣤⣤⠀⠀⠀⠀⣠⣤⣤⣤⣄⣤⣤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⠀⠀⠀⠀⠀⠀⣿⠃⠀⠀⣸⣿⠁⠀⣿⣿⠉⠀⠈⣿⡇⠀⠀⠛⠋⠀⠀⢹⣿⠀⠀⠀⣿⠏⠀⠸⠿⠃⠀⣿⣿⠀⣰⡟⠀⠀⠀⠀⠀⢸⣿⠀⠀⠀⠀⣿⡟⢸⣿⡇⢀⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⡇⠀⠀⠀⠀⠀⢸⣿⠀⠀⠀⣿⡟⠀⢠⣿⡇⠀⠀⢰⣿⡇⠀⣰⣾⠟⠛⠛⣻⡇⠀⠀⢸⡿⠀⠀⠀⠀⠀⠀⢻⣿⢰⣿⠀⠀⠀⠀⠀⠀⣾⡇⠀⠀⠀⢸⣿⠇⢸⣿⠀⢸⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣧⣤⣤⣤⡄⠀⠘⣿⣤⣤⡤⣿⠇⠀⢸⣿⠁⠀⠀⣼⣿⠀⠀⢿⣿⣤⣤⠔⣿⠃⠀⠀⣾⡇⠀⠀⠀⠀⠀⠀⢸⣿⣿⠋⠀⠀⠀⢠⣤⣤⣿⣥⣤⡄⠀⣼⣿⠀⣸⡏⠀⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠉⠉⠁⠀⠀⠈⠉⠉⠀⠉⠀⠀⠈⠉⠀⠀⠀⠉⠉⠀⠀⠀⠉⠉⠁⠈⠉⠀⠀⠀⠉⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠀⠀⠀⠀⠈⠉⠉⠉⠉⠉⠁⠀⠉⠁⠀⠉⠁⠀⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
},
footer = { "chrisatmachine.com" },
},
}

View file

@ -1,12 +1,12 @@
-- better window movement
vim.api.nvim_set_keymap('n', '<C-h>', '<C-w>h', {silent = true})
vim.api.nvim_set_keymap('n', '<C-j>', '<C-w>j', {silent = true})
vim.api.nvim_set_keymap('n', '<C-k>', '<C-w>k', {silent = true})
vim.api.nvim_set_keymap('n', '<C-l>', '<C-w>l', {silent = true})
vim.api.nvim_set_keymap("n", "<C-h>", "<C-w>h", { silent = true })
vim.api.nvim_set_keymap("n", "<C-j>", "<C-w>j", { silent = true })
vim.api.nvim_set_keymap("n", "<C-k>", "<C-w>k", { silent = true })
vim.api.nvim_set_keymap("n", "<C-l>", "<C-w>l", { silent = true })
-- TODO fix this
-- Terminal window navigation
vim.cmd([[
vim.cmd [[
tnoremap <C-h> <C-\><C-N><C-w>h
tnoremap <C-j> <C-\><C-N><C-w>j
tnoremap <C-k> <C-\><C-N><C-w>k
@ -16,38 +16,50 @@ vim.cmd([[
inoremap <C-k> <C-\><C-N><C-w>k
inoremap <C-l> <C-\><C-N><C-w>l
tnoremap <Esc> <C-\><C-n>
]])
]]
-- TODO fix this
-- resize with arrows
vim.api.nvim_set_keymap('n', '<C-Up>', ':resize -2<CR>', {silent = true})
vim.api.nvim_set_keymap('n', '<C-Down>', ':resize +2<CR>', {silent = true})
vim.api.nvim_set_keymap('n', '<C-Left>', ':vertical resize -2<CR>', {silent = true})
vim.api.nvim_set_keymap('n', '<C-Right>', ':vertical resize +2<CR>', {silent = true})
vim.api.nvim_set_keymap("n", "<C-Up>", ":resize -2<CR>", { silent = true })
vim.api.nvim_set_keymap("n", "<C-Down>", ":resize +2<CR>", { silent = true })
vim.api.nvim_set_keymap("n", "<C-Left>", ":vertical resize -2<CR>", { silent = true })
vim.api.nvim_set_keymap("n", "<C-Right>", ":vertical resize +2<CR>", { silent = true })
-- better indenting
vim.api.nvim_set_keymap('v', '<', '<gv', {noremap = true, silent = true})
vim.api.nvim_set_keymap('v', '>', '>gv', {noremap = true, silent = true})
vim.api.nvim_set_keymap("v", "<", "<gv", { noremap = true, silent = true })
vim.api.nvim_set_keymap("v", ">", ">gv", { noremap = true, silent = true })
-- I hate escape
vim.api.nvim_set_keymap('i', 'jk', '<ESC>', {noremap = true, silent = true})
vim.api.nvim_set_keymap('i', 'kj', '<ESC>', {noremap = true, silent = true})
vim.api.nvim_set_keymap('i', 'jj', '<ESC>', {noremap = true, silent = true})
vim.api.nvim_set_keymap("i", "jk", "<ESC>", { noremap = true, silent = true })
vim.api.nvim_set_keymap("i", "kj", "<ESC>", { noremap = true, silent = true })
vim.api.nvim_set_keymap("i", "jj", "<ESC>", { noremap = true, silent = true })
-- Tab switch buffer
vim.api.nvim_set_keymap('n', '<TAB>', ':bnext<CR>', {noremap = true, silent = true})
vim.api.nvim_set_keymap('n', '<S-TAB>', ':bprevious<CR>', {noremap = true, silent = true})
vim.api.nvim_set_keymap("n", "<TAB>", ":bnext<CR>", { noremap = true, silent = true })
vim.api.nvim_set_keymap("n", "<S-TAB>", ":bprevious<CR>", { noremap = true, silent = true })
-- Move selected line / block of text in visual mode
vim.api.nvim_set_keymap('x', 'K', ':move \'<-2<CR>gv-gv', {noremap = true, silent = true})
vim.api.nvim_set_keymap('x', 'J', ':move \'>+1<CR>gv-gv', {noremap = true, silent = true})
vim.api.nvim_set_keymap("x", "K", ":move '<-2<CR>gv-gv", { noremap = true, silent = true })
vim.api.nvim_set_keymap("x", "J", ":move '>+1<CR>gv-gv", { noremap = true, silent = true })
-- Move current line / block with Alt-j/k ala vscode.
vim.api.nvim_set_keymap("n", "<A-j>", ":m .+1<CR>==", { noremap = true, silent = true })
vim.api.nvim_set_keymap("n", "<A-k>", ":m .-2<CR>==", { noremap = true, silent = true })
vim.api.nvim_set_keymap("i", "<A-j>", "<Esc>:m .+1<CR>==gi", { noremap = true, silent = true })
vim.api.nvim_set_keymap("i", "<A-k>", "<Esc>:m .-2<CR>==gi", { noremap = true, silent = true })
vim.api.nvim_set_keymap("x", "<A-j>", ":m '>+1<CR>gv-gv", { noremap = true, silent = true })
vim.api.nvim_set_keymap("x", "<A-k>", ":m '<-2<CR>gv-gv", { noremap = true, silent = true })
-- QuickFix
vim.api.nvim_set_keymap("n", "]q", ":cnext<CR>", { noremap = true, silent = true })
vim.api.nvim_set_keymap("n", "[q", ":cprev<CR>", { noremap = true, silent = true })
-- Better nav for omnicomplete
vim.cmd('inoremap <expr> <c-j> (\"\\<C-n>\")')
vim.cmd('inoremap <expr> <c-k> (\"\\<C-p>\")')
vim.cmd 'inoremap <expr> <c-j> ("\\<C-n>")'
vim.cmd 'inoremap <expr> <c-k> ("\\<C-p>")'
vim.cmd('vnoremap p "0p')
vim.cmd('vnoremap P "0P')
vim.cmd 'vnoremap p "0p'
vim.cmd 'vnoremap P "0P'
-- vim.api.nvim_set_keymap('v', 'p', '"0p', {silent = true})
-- vim.api.nvim_set_keymap('v', 'P', '"0P', {silent = true})
@ -64,4 +76,4 @@ vim.cmd('vnoremap P "0P')
-- ]])
-- Toggle the QuickFix window
vim.api.nvim_set_keymap('', '<C-q>', ':call QuickFixToggle()<CR>', {noremap = true, silent = true})
vim.api.nvim_set_keymap("", "<C-q>", ":call QuickFixToggle()<CR>", { noremap = true, silent = true })

View file

@ -1,3 +1,7 @@
-- if not package.loaded['lspconfig'] then
-- return
-- end
local nvim_lsp = require'lspconfig'
local configs = require'lspconfig/configs'
local capabilities = vim.lsp.protocol.make_client_capabilities()
@ -6,7 +10,7 @@ capabilities.textDocument.completion.completionItem.snippetSupport = true
configs.emmet_ls = {
default_config = {
cmd = {'emmet-ls', '--stdio'};
filetypes = {'html', 'css', 'javascript', 'javascriptreact', 'typescript', 'typescriptreact'};
filetypes = {'html', 'css', 'javascript', 'typescript'};
root_dir = function()
return vim.loop.cwd()
end;

View file

@ -20,14 +20,12 @@ vim.cmd("nnoremap <silent> gd <cmd>lua vim.lsp.buf.definition()<CR>")
vim.cmd("nnoremap <silent> gD <cmd>lua vim.lsp.buf.declaration()<CR>")
vim.cmd("nnoremap <silent> gr <cmd>lua vim.lsp.buf.references()<CR>")
vim.cmd("nnoremap <silent> gi <cmd>lua vim.lsp.buf.implementation()<CR>")
vim.cmd("nnoremap <silent> K :Lspsaga hover_doc<CR>")
vim.cmd("nnoremap <silent> K :lua vim.lsp.buf.hover()<CR>")
-- vim.cmd('nnoremap <silent> <C-k> <cmd>lua vim.lsp.buf.signature_help()<CR>')
vim.cmd("nnoremap <silent> <C-p> :Lspsaga diagnostic_jump_prev<CR>")
vim.cmd("nnoremap <silent> <C-n> :Lspsaga diagnostic_jump_next<CR>")
vim.cmd("nnoremap <silent> <C-p> :lua vim.lsp.diagnostic.goto_prev({popup_opts = {border = O.lsp.popup_border}})<CR>")
vim.cmd("nnoremap <silent> <C-n> :lua vim.lsp.diagnostic.goto_next({popup_opts = {border = O.lsp.popup_border}})<CR>")
-- scroll down hover doc or scroll in definition preview
vim.cmd("nnoremap <silent> <C-f> <cmd>lua require('lspsaga.action').smart_scroll_with_saga(1)<CR>")
-- scroll up hover doc
vim.cmd("nnoremap <silent> <C-b> <cmd>lua require('lspsaga.action').smart_scroll_with_saga(-1)<CR>")
vim.cmd('command! -nargs=0 LspVirtualTextToggle lua require("lsp/virtual_text").toggle()')
-- Set Default Prefix.
@ -43,6 +41,18 @@ vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(
}
)
vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(
vim.lsp.handlers.hover, {
border = O.lsp.popup_border
}
)
vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(
vim.lsp.handlers.signature_help, {
border = O.lsp.popup_border
}
)
-- symbols for autocomplete
vim.lsp.protocol.CompletionItemKind = {
"  (Text) ",
@ -106,8 +116,48 @@ if O.document_highlight then
end
function lsp_config.tsserver_on_attach(client, bufnr)
lsp_config.common_on_attach(client, bufnr)
-- lsp_config.common_on_attach(client, bufnr)
client.resolved_capabilities.document_formatting = false
local ts_utils = require("nvim-lsp-ts-utils")
-- defaults
ts_utils.setup {
debug = false,
disable_commands = false,
enable_import_on_completion = false,
import_all_timeout = 5000, -- ms
-- eslint
eslint_enable_code_actions = true,
eslint_enable_disable_comments = true,
eslint_bin = O.lang.tsserver.linter,
eslint_config_fallback = nil,
eslint_enable_diagnostics = true,
-- formatting
enable_formatting = O.lang.tsserver.autoformat,
formatter = O.lang.tsserver.formatter,
formatter_config_fallback = nil,
-- parentheses completion
complete_parens = false,
signature_help_in_parens = false,
-- update imports on file move
update_imports_on_move = false,
require_confirmation_on_move = false,
watch_dir = nil,
}
-- required to fix code action ranges
ts_utils.setup_client(client)
-- TODO: keymap these?
-- vim.api.nvim_buf_set_keymap(bufnr, "n", "gs", ":TSLspOrganize<CR>", {silent = true})
-- vim.api.nvim_buf_set_keymap(bufnr, "n", "qq", ":TSLspFixCurrent<CR>", {silent = true})
-- vim.api.nvim_buf_set_keymap(bufnr, "n", "gr", ":TSLspRenameFile<CR>", {silent = true})
-- vim.api.nvim_buf_set_keymap(bufnr, "n", "gi", ":TSLspImportAll<CR>", {silent = true})
end

View file

@ -10,54 +10,25 @@ M.setup = function()
formatStdin = true
}
if vim.fn.glob("node_modules/.bin/prettier") then
if vim.fn.glob("node_modules/.bin/prettier") ~= "" then
prettier = {
formatCommand = "./node_modules/.bin/prettier --stdin-filepath ${INPUT}",
formatStdin = true
}
end
-- TODO global eslint?
local eslint = {
lintCommand = "./node_modules/.bin/eslint -f unix --stdin --stdin-filename ${INPUT}",
lintIgnoreExitCode = true,
lintStdin = true,
lintFormats = {"%f:%l:%c: %m"},
-- formatCommand = "./node_modules/.bin/eslint -f unix --fix --stdin-filename ${INPUT}", -- TODO check if eslint is the formatter then add this
formatStdin = true
}
if O.lang.tsserver.formatter == 'prettier' then
table.insert(tsserver_args, prettier)
end
if O.lang.tsserver.linter == 'eslint' then
table.insert(tsserver_args, eslint)
end
require"lspconfig".efm.setup {
-- init_options = {initializationOptions},
cmd = {DATA_PATH .. "/lspinstall/efm/efm-langserver"},
init_options = {documentFormatting = true, codeAction = false},
filetypes = {
"javascriptreact", "javascript", "typescript", "typescriptreact",
"html", "css", "yaml", "vue"
},
filetypes = {"html", "css", "yaml", "vue", "javascript", "javascriptreact", "typescript", "typescriptreact"},
settings = {
rootMarkers = {".git/", "package.json"},
languages = {
javascript = tsserver_args,
javascriptreact = tsserver_args,
typescript = tsserver_args,
typescriptreact = tsserver_args,
html = {prettier},
css = {prettier},
json = {prettier},
yaml = {prettier}
-- javascriptreact = {prettier, eslint},
-- javascript = {prettier, eslint},
-- markdown = {markdownPandocFormat, markdownlint},
}
}
}

View file

@ -1,47 +1,47 @@
local npairs = require('nvim-autopairs')
local Rule = require('nvim-autopairs.rule')
-- if not package.loaded['nvim-autopairs'] then
-- return
-- end
local npairs = require "nvim-autopairs"
local Rule = require "nvim-autopairs.rule"
-- skip it, if you use another global object
_G.MUtils= {}
_G.MUtils = {}
vim.g.completion_confirm_key = ""
MUtils.completion_confirm=function()
if vim.fn.pumvisible() ~= 0 then
MUtils.completion_confirm = function()
if vim.fn.pumvisible() ~= 0 then
if vim.fn.complete_info()["selected"] ~= -1 then
return vim.fn["compe#confirm"](npairs.esc("<cr>"))
return vim.fn["compe#confirm"](npairs.esc "<cr>")
else
return npairs.esc("<cr>")
return npairs.esc "<cr>"
end
else
return npairs.autopairs_cr()
end
end
if package.loaded["compe"] then
require("nvim-autopairs.completion.compe").setup {
map_cr = true, -- map <CR> on insert mode
map_complete = true, -- it will auto insert `(` after select function or method item
}
end
require("nvim-autopairs.completion.compe").setup({
map_cr = true, -- map <CR> on insert mode
map_complete = true -- it will auto insert `(` after select function or method item
})
npairs.setup({
check_ts = true,
ts_config = {
lua = {'string'},-- it will not add pair on that treesitter node
javascript = {'template_string'},
java = false,-- don't check treesitter on java
}
})
require('nvim-treesitter.configs').setup {
autopairs = {enable = true}
npairs.setup {
check_ts = true,
ts_config = {
lua = { "string" }, -- it will not add pair on that treesitter node
javascript = { "template_string" },
java = false, -- don't check treesitter on java
},
}
local ts_conds = require('nvim-autopairs.ts-conds')
require("nvim-treesitter.configs").setup { autopairs = { enable = true } }
local ts_conds = require "nvim-autopairs.ts-conds"
-- press % => %% is only inside comment or string
npairs.add_rules({
Rule("%", "%", "lua")
:with_pair(ts_conds.is_ts_node({'string','comment'})),
Rule("$", "$", "lua")
:with_pair(ts_conds.is_not_ts_node({'function'}))
})
npairs.add_rules {
Rule("%", "%", "lua"):with_pair(ts_conds.is_ts_node { "string", "comment" }),
Rule("$", "$", "lua"):with_pair(ts_conds.is_not_ts_node { "function" }),
}

View file

@ -1,52 +1,73 @@
local M = {}
M.config = function()
require('bufferline').setup {
options = {
-- numbers = "none" | "ordinal" | "buffer_id" | "both",
-- number_style = "superscript" | "" | { "none", "subscript" }, -- buffer_id at index 1, ordinal at index 2
-- mappings = true | false,
-- close_command = "bdelete! %d", -- can be a string | function, see "Mouse actions"
-- right_mouse_command = "bdelete! %d", -- can be a string | function, see "Mouse actions"
-- left_mouse_command = "buffer %d", -- can be a string | function, see "Mouse actions"
middle_mouse_command = nil, -- can be a string | function, see "Mouse actions"
indicator_icon = '',
buffer_close_icon = '',
modified_icon = '',
close_icon = '',
left_trunc_marker = '',
right_trunc_marker = '',
--- name_formatter can be used to change the buffer's label in the bufferline.
--- Please note some names can/will break the
--- bufferline so use this at your discretion knowing that it has
--- some limitations that will *NOT* be fixed.
-- name_formatter = function(buf) -- buf contains a "name", "path" and "bufnr"
-- -- remove extension from markdown files for example
-- if buf.name:match('%.md') then
-- return vim.fn.fnamemodify(buf.name, ':t:r')
-- end
-- end,
max_name_length = 18,
max_prefix_length = 15, -- prefix used when a buffer is de-duplicated
tab_size = 18,
-- diagnostics = "nvim_lsp",
offsets = {{filetype = "NvimTree", text = "File Explorer", text_align = "left", padding = 1}},
-- show_buffer_icons = true | false, -- disable filetype icons for buffers
show_buffer_close_icons = true
-- show_close_icon = true | false,
-- show_tab_indicators = true | false,
-- persist_buffer_sort = true, -- whether or not custom sorted buffers should persist
-- can also be a table containing 2 custom separators
-- [focused and unfocused]. eg: { '|', '|' }
-- separator_style = "slant" | "thick" | "thin" | { 'any', 'any' },
-- enforce_regular_tabs = false | true,
-- always_show_bufferline = true | false,
-- sort_by = 'extension' | 'relative_directory' | 'directory' | function(buffer_a, buffer_b)
-- add custom logic
-- return buffer_a.modified > buffer_b.modified
-- end
-- Buffer line setup
require("bufferline").setup {
options = {
indicator_icon = "",
buffer_close_icon = "",
modified_icon = "",
close_icon = "",
close_command = "bdelete %d",
right_mouse_command = "bdelete! %d",
left_trunc_marker = "",
right_trunc_marker = "",
offsets = {
{
filetype = "NvimTree",
text = "",
text_align = "center",
padding = 1,
},
},
show_tab_indicators = true,
show_close_icon = false,
},
highlights = {
fill = {
guifg = { attribute = "fg", highlight = "Normal" },
guibg = { attribute = "bg", highlight = "StatusLineNC" },
},
-- background = {
-- guifg = {attribute = "fg", highlight = "Normal"},
-- guibg = {attribute = "bg", highlight = "StatusLine"}
-- },
-- buffer_visible = {
-- gui = "",
-- guifg = {attribute = "fg", highlight = "Normal"},
-- guibg = {attribute = "bg", highlight = "Normal"}
-- },
-- buffer_selected = {
-- gui = "",
-- guifg = {attribute = "fg", highlight = "Normal"},
-- guibg = {attribute = "bg", highlight = "Normal"}
-- },
-- separator = {
-- guifg = {attribute = "bg", highlight = "Normal"},
-- guibg = {attribute = "bg", highlight = "StatusLine"}
-- },
-- separator_selected = {
-- guifg = {attribute = "fg", highlight = "Special"},
-- guibg = {attribute = "bg", highlight = "Normal"}
-- },
-- separator_visible = {
-- guifg = {attribute = "fg", highlight = "Normal"},
-- guibg = {attribute = "bg", highlight = "StatusLineNC"}
-- },
-- close_button = {
-- guifg = {attribute = "fg", highlight = "Normal"},
-- guibg = {attribute = "bg", highlight = "StatusLine"}
-- },
-- close_button_selected = {
-- guifg = {attribute = "fg", highlight = "normal"},
-- guibg = {attribute = "bg", highlight = "normal"}
-- },
-- close_button_visible = {
-- guifg = {attribute = "fg", highlight = "normal"},
-- guibg = {attribute = "bg", highlight = "normal"}
-- }
},
}
}
end
return M

View file

@ -1,13 +1,10 @@
require'colorizer'.setup(
{'*';},
{
RGB = true; -- #RGB hex codes
RRGGBB = true; -- #RRGGBB hex codes
RRGGBBAA = true; -- #RRGGBBAA hex codes
rgb_fn = true; -- CSS rgb() and rgba() functions
hsl_fn = true; -- CSS hsl() and hsla() functions
css = true; -- Enable all CSS features: rgb_fn, hsl_fn, names, RGB, RRGGBB
css_fn = true; -- Enable all CSS *functions*: rgb_fn, hsl_fn
})
-- names = true; -- "Name" codes like Blue
require("colorizer").setup({ "*" }, {
RGB = true, -- #RGB hex codes
RRGGBB = true, -- #RRGGBB hex codes
RRGGBBAA = true, -- #RRGGBBAA hex codes
rgb_fn = true, -- CSS rgb() and rgba() functions
hsl_fn = true, -- CSS hsl() and hsla() functions
css = true, -- Enable all CSS features: rgb_fn, hsl_fn, names, RGB, RRGGBB
css_fn = true, -- Enable all CSS *functions*: rgb_fn, hsl_fn
})
-- names = true; -- "Name" codes like Blue

View file

@ -1,12 +1,18 @@
--if not package.loaded['compe'] then
-- return
-- end
local M = {}
vim.g.vsnip_snippet_dir = O.vnsip_dir
M.config = function()
require'compe'.setup {
opt = {
enabled = O.auto_complete,
autocomplete = true,
debug = false,
min_length = 1,
preselect = 'enable',
preselect = "enable",
throttle_time = 80,
source_timeout = 200,
incomplete_delay = 400,
@ -16,73 +22,78 @@ require'compe'.setup {
documentation = true,
source = {
path = {kind = "  (Path)"},
buffer = {kind = "  (Buffer)"},
calc = {kind = "  (Calc)"},
vsnip = {kind = "  (Snippet)"},
nvim_lsp = {kind = "  (LSP)"},
-- nvim_lua = {kind = "  "},
nvim_lua = false,
spell = {kind = "  (Spell)"},
tags = false,
vim_dadbod_completion = true,
-- snippets_nvim = {kind = "  "},
-- ultisnips = {kind = "  "},
-- treesitter = {kind = "  "},
emoji = {kind = " ﲃ (Emoji)", filetypes={"markdown", "text"}}
-- for emoji press : (idk if that in compe tho)
}
}
path = { kind = "  (Path)" },
buffer = { kind = "  (Buffer)" },
calc = { kind = "  (Calc)" },
vsnip = { kind = "  (Snippet)" },
nvim_lsp = { kind = "  (LSP)" },
-- nvim_lua = {kind = "  "},
nvim_lua = false,
spell = { kind = "  (Spell)" },
tags = false,
vim_dadbod_completion = true,
-- snippets_nvim = {kind = "  "},
-- ultisnips = {kind = "  "},
-- treesitter = {kind = "  "},
emoji = { kind = " ﲃ (Emoji)", filetypes = { "markdown", "text" } },
-- for emoji press : (idk if that in compe tho)
},
}
local t = function(str)
return vim.api.nvim_replace_termcodes(str, true, true, true)
end
if O.plugin.tabnine.active then
opt.source.tabnine = { kind = "", priority = 200, max_reslts = 6 }
end
local check_back_space = function()
local col = vim.fn.col('.') - 1
if col == 0 or vim.fn.getline('.'):sub(col, col):match('%s') then
return true
require("compe").setup(opt)
local t = function(str)
return vim.api.nvim_replace_termcodes(str, true, true, true)
end
local check_back_space = function()
local col = vim.fn.col "." - 1
if col == 0 or vim.fn.getline("."):sub(col, col):match "%s" then
return true
else
return false
return false
end
end
-- Use (s-)tab to:
--- move to prev/next item in completion menuone
--- jump to prev/next snippet's placeholder
_G.tab_complete = function()
if vim.fn.pumvisible() == 1 then
return t "<C-n>"
elseif vim.fn.call("vsnip#available", {1}) == 1 then
return t "<Plug>(vsnip-expand-or-jump)"
elseif check_back_space() then
return t "<Tab>"
else
return vim.fn['compe#complete']()
end
end
_G.s_tab_complete = function()
if vim.fn.pumvisible() == 1 then
return t "<C-p>"
elseif vim.fn.call("vsnip#jumpable", {-1}) == 1 then
return t "<Plug>(vsnip-jump-prev)"
else
return t "<S-Tab>"
-- Use (s-)tab to:
--- move to prev/next item in completion menuone
--- jump to prev/next snippet's placeholder
_G.tab_complete = function()
if vim.fn.pumvisible() == 1 then
return t "<C-n>"
elseif vim.fn.call("vsnip#available", { 1 }) == 1 then
return t "<Plug>(vsnip-expand-or-jump)"
elseif check_back_space() then
return t "<Tab>"
else
return vim.fn["compe#complete"]()
end
end
end
_G.s_tab_complete = function()
if vim.fn.pumvisible() == 1 then
return t "<C-p>"
elseif vim.fn.call("vsnip#jumpable", { -1 }) == 1 then
return t "<Plug>(vsnip-jump-prev)"
else
return t "<S-Tab>"
end
end
vim.api.nvim_set_keymap("i", "<Tab>", "v:lua.tab_complete()", {expr = true})
vim.api.nvim_set_keymap("s", "<Tab>", "v:lua.tab_complete()", {expr = true})
vim.api.nvim_set_keymap("i", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true})
vim.api.nvim_set_keymap("s", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true})
vim.api.nvim_set_keymap("i", "<Tab>", "v:lua.tab_complete()", { expr = true })
vim.api.nvim_set_keymap("s", "<Tab>", "v:lua.tab_complete()", { expr = true })
vim.api.nvim_set_keymap("i", "<S-Tab>", "v:lua.s_tab_complete()", { expr = true })
vim.api.nvim_set_keymap("s", "<S-Tab>", "v:lua.s_tab_complete()", { expr = true })
vim.api.nvim_set_keymap("i", "<C-Space>", "compe#complete()", {noremap = true, silent = true, expr = true})
vim.api.nvim_set_keymap("i", "<CR>", "compe#confirm('<CR>')", {noremap = true, silent = true, expr = true})
vim.api.nvim_set_keymap("i", "<C-e>", "compe#close('<C-e>')", {noremap = true, silent = true, expr = true})
vim.api.nvim_set_keymap("i", "<C-f>", "compe#scroll({ 'delta': +4 })", {noremap = true, silent = true, expr = true})
vim.api.nvim_set_keymap("i", "<C-d>", "compe#scroll({ 'delta': -4 })", {noremap = true, silent = true, expr = true})
vim.api.nvim_set_keymap("i", "<C-Space>", "compe#complete()", { noremap = true, silent = true, expr = true })
-- vim.api.nvim_set_keymap("i", "<CR>", "compe#confirm('<CR>')", { noremap = true, silent = true, expr = true })
vim.api.nvim_set_keymap("i", "<C-e>", "compe#close('<C-e>')", { noremap = true, silent = true, expr = true })
vim.api.nvim_set_keymap("i", "<C-f>", "compe#scroll({ 'delta': +4 })", { noremap = true, silent = true, expr = true })
vim.api.nvim_set_keymap("i", "<C-d>", "compe#scroll({ 'delta': -4 })", { noremap = true, silent = true, expr = true })
end
return M

View file

@ -1,65 +1,70 @@
local M = {}
M.config = function()
vim.g.dashboard_disable_at_vimenter = 0
vim.g.dashboard_disable_at_vimenter = 0
vim.g.dashboard_custom_header = O.dashboard.custom_header
vim.g.dashboard_custom_header = O.dashboard.custom_header
vim.g.dashboard_default_executive = 'telescope'
vim.g.dashboard_default_executive = "telescope"
vim.g.dashboard_custom_section = {
a = {
description = {' Find File '},
command = 'Telescope find_files'
},
b = {
description = {' Recently Used Files'},
command = 'Telescope oldfiles'
},
c = {
description = {' Load Last Session '},
command = 'SessionLoad'
},
d = {
description = {' Find Word '},
command = 'Telescope live_grep'
},
e = {
description = {' Settings '},
command = ':e ' .. CONFIG_PATH .. '/lv-config.lua'
},
f = {
description = {' Neovim Config Files'},
command = 'Telescope find_files cwd=' .. CONFIG_PATH
}
-- e = {description = {' Marks '}, command = 'Telescope marks'}
}
vim.cmd(
"let g:dashboard_session_directory = $HOME..'/.config/nvim/.sessions'")
vim.cmd(
"let packages = len(globpath('~/.local/share/nvim/site/pack/packer/start', '*', 0, 1))")
vim.g.dashboard_custom_section = {
a = {
description = { " Find File " },
command = "Telescope find_files",
},
b = {
description = { " Recently Used Files" },
command = "Telescope oldfiles",
},
c = {
description = { " Load Last Session " },
command = "SessionLoad",
},
d = {
description = { " Find Word " },
command = "Telescope live_grep",
},
e = {
description = { " Settings " },
command = ":e " .. CONFIG_PATH .. "/lv-config.lua",
},
f = {
description = { " Neovim Config Files" },
command = "Telescope find_files cwd=" .. CONFIG_PATH,
},
-- e = {description = {' Marks '}, command = 'Telescope marks'}
}
vim.cmd "let g:dashboard_session_directory = $HOME..'/.config/nvim/.sessions'"
vim.cmd "let packages = len(globpath('~/.local/share/nvim/site/pack/packer/start', '*', 0, 1))"
vim.api.nvim_exec([[
vim.api.nvim_exec(
[[
let g:dashboard_custom_footer = ['LuaJIT loaded '..packages..' plugins']
]], false)
]],
false
)
-- file_browser = {description = {' File Browser'}, command = 'Telescope find_files'},
-- file_browser = {description = {' File Browser'}, command = 'Telescope find_files'},
-- vim.g.dashboard_session_directory = CACHE_PATH..'/session'
-- vim.g.dashboard_custom_footer = O.dashboard.footer
-- vim.g.dashboard_session_directory = CACHE_PATH..'/session'
-- vim.g.dashboard_custom_footer = O.dashboard.footer
end
require('lv-utils').define_augroups({
_dashboard = {
-- seems to be nobuflisted that makes my stuff disapear will do more testing
{
'FileType', 'dashboard',
'setlocal nocursorline noswapfile synmaxcol& signcolumn=no norelativenumber nocursorcolumn nospell nolist nonumber bufhidden=wipe colorcolumn= foldcolumn=0 matchpairs= '
}, {
'FileType', 'dashboard',
'set showtabline=0 | autocmd BufLeave <buffer> set showtabline=2'
}, {'FileType', 'dashboard', 'nnoremap <silent> <buffer> q :q<CR>'}
}
})
require("lv-utils").define_augroups {
_dashboard = {
-- seems to be nobuflisted that makes my stuff disapear will do more testing
{
"FileType",
"dashboard",
"setlocal nocursorline noswapfile synmaxcol& signcolumn=no norelativenumber nocursorcolumn nospell nolist nonumber bufhidden=wipe colorcolumn= foldcolumn=0 matchpairs= ",
},
{
"FileType",
"dashboard",
"set showtabline=0 | autocmd BufLeave <buffer> set showtabline=2",
},
{ "FileType", "dashboard", "nnoremap <silent> <buffer> q :q<CR>" },
},
}
return M

View file

@ -1,7 +1,7 @@
local M = {}
M.config = function()
vim.cmd [[
vim.cmd [[
nmap <C-a> <Plug>(dial-increment)
nmap <C-x> <Plug>(dial-decrement)
vmap <C-a> <Plug>(dial-increment)
@ -10,13 +10,21 @@ vmap g<C-a> <Plug>(dial-increment-additional)
vmap g<C-x> <Plug>(dial-decrement-additional)
]]
local dial = require("dial")
local dial = require "dial"
dial.augends["custom#boolean"] = dial.common.enum_cyclic {
name = "boolean",
strlist = { "true", "false" },
}
table.insert(dial.config.searchlist.normal, "custom#boolean")
-- For Languages which prefer True/False, e.g. python.
dial.augends["custom#Boolean"] = dial.common.enum_cyclic {
name = "Boolean",
strlist = { "True", "False" },
}
table.insert(dial.config.searchlist.normal, "custom#Boolean")
dial.augends["custom#boolean"] = dial.common.enum_cyclic {
name = "boolean",
strlist = {"true", "false"}
}
table.insert(dial.config.searchlist.normal, "custom#boolean")
end
return M

View file

@ -1,25 +1,29 @@
local gl = require('galaxyline')
-- if not package.loaded['galaxyline'] then
-- return
-- end
local gl = require "galaxyline"
-- get my theme in galaxyline repo
-- local colors = require('galaxyline.theme').default
local colors = {
bg = '#2E2E2E',
-- bg = '#292D38',
yellow = '#DCDCAA',
dark_yellow = '#D7BA7D',
cyan = '#4EC9B0',
green = '#608B4E',
light_green = '#B5CEA8',
string_orange = '#CE9178',
orange = '#FF8800',
purple = '#C586C0',
magenta = '#D16D9E',
grey = '#858585',
blue = '#569CD6',
vivid_blue = '#4FC1FF',
light_blue = '#9CDCFE',
red = '#D16969',
error_red = '#F44747',
info_yellow = '#FFCC66'
bg = "#2E2E2E",
-- bg = '#292D38',
yellow = "#DCDCAA",
dark_yellow = "#D7BA7D",
cyan = "#4EC9B0",
green = "#608B4E",
light_green = "#B5CEA8",
string_orange = "#CE9178",
orange = "#FF8800",
purple = "#C586C0",
magenta = "#D16D9E",
grey = "#858585",
blue = "#569CD6",
vivid_blue = "#4FC1FF",
light_blue = "#9CDCFE",
red = "#D16969",
error_red = "#F44747",
info_yellow = "#FFCC66",
}
-- galaxyline themes for Gruvbox and NVCode.
@ -67,231 +71,263 @@ local colors = {
-- info_yellow = '#FFCC66'
-- }
local condition = require('galaxyline.condition')
local condition = require "galaxyline.condition"
local gls = gl.section
gl.short_line_list = {'NvimTree', 'vista', 'dbui', 'packer'}
gl.short_line_list = { "NvimTree", "vista", "dbui", "packer" }
table.insert(gls.left, {
ViMode = {
provider = function()
-- auto change color according the vim mode
local mode_color = {
n = colors.blue,
i = colors.green,
v = colors.purple,
[''] = colors.purple,
V = colors.purple,
c = colors.magenta,
no = colors.blue,
s = colors.orange,
S = colors.orange,
[''] = colors.orange,
ic = colors.yellow,
R = colors.red,
Rv = colors.red,
cv = colors.blue,
ce = colors.blue,
r = colors.cyan,
rm = colors.cyan,
['r?'] = colors.cyan,
['!'] = colors.blue,
t = colors.blue
}
vim.api.nvim_command('hi GalaxyViMode guifg=' .. mode_color[vim.fn.mode()])
return ''
end,
highlight = {colors.red, colors.bg}
}
ViMode = {
provider = function()
-- auto change color according the vim mode
local mode_color = {
n = colors.blue,
i = colors.green,
v = colors.purple,
[""] = colors.purple,
V = colors.purple,
c = colors.magenta,
no = colors.blue,
s = colors.orange,
S = colors.orange,
[""] = colors.orange,
ic = colors.yellow,
R = colors.red,
Rv = colors.red,
cv = colors.blue,
ce = colors.blue,
r = colors.cyan,
rm = colors.cyan,
["r?"] = colors.cyan,
["!"] = colors.blue,
t = colors.blue,
}
vim.api.nvim_command("hi GalaxyViMode guifg=" .. mode_color[vim.fn.mode()])
return ""
end,
highlight = 'StatusLineNC'
-- highlight = {colors.red, colors.bg}
},
})
-- print(vim.fn.getbufvar(0, 'ts'))
vim.fn.getbufvar(0, 'ts')
vim.fn.getbufvar(0, "ts")
table.insert(gls.left, {
GitIcon = {
provider = function()
return ''
end,
condition = condition.check_git_workspace,
separator = ' ',
separator_highlight = {'NONE', colors.bg},
highlight = {colors.orange, colors.bg}
}
GitIcon = {
provider = function()
return ""
end,
condition = condition.check_git_workspace,
separator = " ",
separator_highlight = "StatusLineSeparator",
highlight = "StatusLineGit",
},
})
table.insert(gls.left, {
GitBranch = {
provider = 'GitBranch',
condition = condition.check_git_workspace,
separator = ' ',
separator_highlight = {'NONE', colors.bg},
highlight = {colors.grey, colors.bg}
}
GitBranch = {
provider = "GitBranch",
condition = condition.check_git_workspace,
separator = " ",
separator_highlight = "StatusLineSeparator",
highlight = "StatusLineNC",
},
})
table.insert(gls.left, {
DiffAdd = {
provider = 'DiffAdd',
condition = condition.hide_in_width,
icon = '',
highlight = {colors.green, colors.bg}
}
DiffAdd = {
provider = "DiffAdd",
condition = condition.hide_in_width,
icon = "",
highlight = "StatusLineGitAdd",
},
})
table.insert(gls.left, {
DiffModified = {
provider = 'DiffModified',
condition = condition.hide_in_width,
icon = '',
highlight = {colors.blue, colors.bg}
}
DiffModified = {
provider = "DiffModified",
condition = condition.hide_in_width,
icon = "",
highlight = "StatusLineGitChange",
},
})
table.insert(gls.left, {
DiffRemove = {
provider = 'DiffRemove',
condition = condition.hide_in_width,
icon = '',
highlight = {colors.red, colors.bg}
}
DiffRemove = {
provider = "DiffRemove",
condition = condition.hide_in_width,
icon = "",
highlight = "StatusLineGitDelete",
},
})
table.insert(gls.right, {
DiagnosticError = {provider = 'DiagnosticError', icon = '', highlight = {colors.error_red, colors.bg}}
DiagnosticError = {
provider = "DiagnosticError",
icon = "",
highlight = "StatusLineLspDiagnosticsError",
},
})
table.insert(gls.right, {
DiagnosticWarn = {
provider = "DiagnosticWarn",
icon = "",
highlight = "StatusLineLspDiagnosticsWarning",
},
})
table.insert(gls.right, {DiagnosticWarn = {provider = 'DiagnosticWarn', icon = '', highlight = {colors.orange, colors.bg}}})
table.insert(gls.right, {
DiagnosticHint = {provider = 'DiagnosticHint', icon = '', highlight = {colors.vivid_blue, colors.bg}}
})
DiagnosticInfo = {
provider = "DiagnosticInfo",
icon = "",
table.insert(gls.right, {DiagnosticInfo = {provider = 'DiagnosticInfo', icon = '', highlight = {colors.info_yellow, colors.bg}}})
highlight = "StatusLineLspDiagnosticsInformation",
},
})
table.insert(gls.right, {
TreesitterIcon = {
provider = function()
if next(vim.treesitter.highlighter.active) ~= nil then return '' end
return ''
end,
separator = ' ',
separator_highlight = {'NONE', colors.bg},
highlight = {colors.green, colors.bg}
}
DiagnosticHint = {
provider = "DiagnosticHint",
icon = "",
highlight = "StatusLineLspDiagnosticsHint",
},
})
local get_lsp_client = function (msg)
msg = msg or "No Active LSP Client"
local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype')
local clients = vim.lsp.get_active_clients()
if next(clients) == nil then
return msg
end
local lsps = ""
for _,client in ipairs(clients) do
local filetypes = client.config.filetypes
if filetypes and vim.fn.index(filetypes, buf_ft) ~=1 then
-- print(client.name)
if lsps == "" then
-- print("first", lsps)
lsps = client.name
else
lsps = lsps .. ", " .. client.name
-- print("more", lsps)
end
end
end
if lsps == "" then
return msg
else
return lsps
table.insert(gls.right, {
TreesitterIcon = {
provider = function()
if next(vim.treesitter.highlighter.active) ~= nil then
return ""
end
return ""
end,
separator = " ",
separator_highlight = "StatusLineSeparator",
highlight = "StatusLineTreeSitter",
},
})
local get_lsp_client = function(msg)
msg = msg or "No Active LSP Client"
local buf_ft = vim.api.nvim_buf_get_option(0, "filetype")
local clients = vim.lsp.get_active_clients()
if next(clients) == nil then
return msg
end
local lsps = ""
for _, client in ipairs(clients) do
local filetypes = client.config.filetypes
if filetypes and vim.fn.index(filetypes, buf_ft) ~= 1 then
-- print(client.name)
if lsps == "" then
-- print("first", lsps)
lsps = client.name
else
lsps = lsps .. ", " .. client.name
-- print("more", lsps)
end
end
end
if lsps == "" then
return msg
else
return lsps
end
end
table.insert(gls.right, {
ShowLspClient = {
provider = get_lsp_client,
condition = function()
local tbl = {['dashboard'] = true, [' '] = true}
if tbl[vim.bo.filetype] then return false end
return true
end,
icon = '',
highlight = {colors.grey, colors.bg}
}
ShowLspClient = {
provider = get_lsp_client,
condition = function()
local tbl = { ["dashboard"] = true, [" "] = true }
if tbl[vim.bo.filetype] then
return false
end
return true
end,
icon = "",
highlight = "StatusLineNC",
},
})
table.insert(gls.right, {
LineInfo = {
provider = 'LineColumn',
separator = ' ',
separator_highlight = {'NONE', colors.bg},
highlight = {colors.grey, colors.bg}
}
LineInfo = {
provider = "LineColumn",
separator = " ",
separator_highlight = "StatusLineSeparator",
highlight = "StatusLineNC",
},
})
table.insert(gls.right, {
PerCent = {
provider = 'LinePercent',
separator = ' ',
separator_highlight = {'NONE', colors.bg},
highlight = {colors.grey, colors.bg}
}
PerCent = {
provider = "LinePercent",
separator = " ",
separator_highlight = "StatusLineSeparator",
highlight = "StatusLineNC",
},
})
table.insert(gls.right, {
Tabstop = {
provider = function()
return "Spaces: " .. vim.api.nvim_buf_get_option(0, "shiftwidth") .. " "
end,
condition = condition.hide_in_width,
separator = ' ',
separator_highlight = {'NONE', colors.bg},
highlight = {colors.grey, colors.bg}
}
Tabstop = {
provider = function()
return "Spaces: " .. vim.api.nvim_buf_get_option(0, "shiftwidth") .. " "
end,
condition = condition.hide_in_width,
separator = " ",
separator_highlight = "StatusLineSeparator",
highlight = "StatusLineNC",
},
})
table.insert(gls.right, {
BufferType = {
provider = 'FileTypeName',
condition = condition.hide_in_width,
separator = ' ',
separator_highlight = {'NONE', colors.bg},
highlight = {colors.grey, colors.bg}
}
BufferType = {
provider = "FileTypeName",
condition = condition.hide_in_width,
separator = " ",
separator_highlight = "StatusLineSeparator",
highlight = "StatusLineNC",
},
})
table.insert(gls.right, {
FileEncode = {
provider = 'FileEncode',
condition = condition.hide_in_width,
separator = ' ',
separator_highlight = {'NONE', colors.bg},
highlight = {colors.grey, colors.bg}
}
FileEncode = {
provider = "FileEncode",
condition = condition.hide_in_width,
separator = " ",
separator_highlight = "StatusLineSeparator",
highlight = "StatusLineNC",
},
})
table.insert(gls.right, {
Space = {
provider = function()
return ' '
end,
separator = ' ',
separator_highlight = {'NONE', colors.bg},
highlight = {colors.orange, colors.bg}
}
Space = {
provider = function()
return " "
end,
separator = " ",
separator_highlight = "StatusLineSeparator",
highlight = "StatusLineNC",
},
})
table.insert(gls.short_line_left, {
BufferType = {
provider = 'FileTypeName',
separator = ' ',
separator_highlight = {'NONE', colors.bg},
highlight = {colors.grey, colors.bg}
}
BufferType = {
provider = "FileTypeName",
separator = " ",
separator_highlight = "StatusLineSeparator",
highlight = "StatusLineNC",
},
})
table.insert(gls.short_line_left, {
SFileName = {provider = 'SFileName', condition = condition.buffer_not_empty, highlight = {colors.grey, colors.bg}}
SFileName = {
provider = "SFileName",
condition = condition.buffer_not_empty,
highlight = "StatusLineNC",
},
})
--table.insert(gls.short_line_right[1] = {BufferIcon = {provider = 'BufferIcon', highlight = {colors.grey, colors.bg}}})

View file

@ -1,2 +1,2 @@
vim.cmd('highlight default link gitblame SpecialComment')
vim.cmd "highlight default link gitblame SpecialComment"
vim.g.gitblame_enabled = 0

View file

@ -1,53 +1,53 @@
local M = {}
M.config = function()
require('gitsigns').setup {
signs = {
-- TODO add hl to colorscheme
add = {
hl = 'GitSignsAdd',
text = '',
numhl = 'GitSignsAddNr',
linehl = 'GitSignsAddLn'
},
change = {
hl = 'GitSignsChange',
text = '',
numhl = 'GitSignsChangeNr',
linehl = 'GitSignsChangeLn'
},
delete = {
hl = 'GitSignsDelete',
text = '',
numhl = 'GitSignsDeleteNr',
linehl = 'GitSignsDeleteLn'
},
topdelete = {
hl = 'GitSignsDelete',
text = '',
numhl = 'GitSignsDeleteNr',
linehl = 'GitSignsDeleteLn'
},
changedelete = {
hl = 'GitSignsChange',
text = '',
numhl = 'GitSignsChangeNr',
linehl = 'GitSignsChangeLn'
}
},
numhl = false,
linehl = false,
keymaps = {
-- Default keymap options
noremap = true,
buffer = true
},
watch_index = {interval = 1000},
sign_priority = 6,
update_debounce = 200,
status_formatter = nil, -- Use default
use_decoration_api = false
}
require("gitsigns").setup {
signs = {
-- TODO add hl to colorscheme
add = {
hl = "GitSignsAdd",
text = "",
numhl = "GitSignsAddNr",
linehl = "GitSignsAddLn",
},
change = {
hl = "GitSignsChange",
text = "",
numhl = "GitSignsChangeNr",
linehl = "GitSignsChangeLn",
},
delete = {
hl = "GitSignsDelete",
text = "",
numhl = "GitSignsDeleteNr",
linehl = "GitSignsDeleteLn",
},
topdelete = {
hl = "GitSignsDelete",
text = "",
numhl = "GitSignsDeleteNr",
linehl = "GitSignsDeleteLn",
},
changedelete = {
hl = "GitSignsChange",
text = "",
numhl = "GitSignsChangeNr",
linehl = "GitSignsChangeLn",
},
},
numhl = false,
linehl = false,
keymaps = {
-- Default keymap options
noremap = true,
buffer = true,
},
watch_index = { interval = 1000 },
sign_priority = 6,
update_debounce = 200,
status_formatter = nil, -- Use default
use_decoration_api = false,
}
end
return M

View file

@ -1,9 +1,9 @@
local M = {}
M.config = function()
require('hop').setup()
vim.api.nvim_set_keymap('n', 's', ":HopChar2<cr>", {silent = true})
vim.api.nvim_set_keymap('n', 'S', ":HopWord<cr>", {silent = true})
require("hop").setup()
vim.api.nvim_set_keymap("n", "s", ":HopChar2<cr>", { silent = true })
vim.api.nvim_set_keymap("n", "S", ":HopWord<cr>", { silent = true })
end
return M

View file

@ -1,5 +1,5 @@
require("lsp-rooter").setup {
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
}
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
}

View file

@ -1,7 +1,7 @@
-- 1. get the config for this server from nvim-lspconfig and adjust the cmd path.
-- relative paths are allowed, lspinstall automatically adjusts the cmd and cmd_cwd for us!
local config = require'lspconfig'.jdtls.document_config
require'lspconfig/configs'.jdtls = nil -- important, unset the loaded config again
local config = require("lspconfig").jdtls.document_config
require("lspconfig/configs").jdtls = nil -- important, unset the loaded config again
-- config.default_config.cmd[1] = "./node_modules/.bin/bash-language-server"
-- 2. extend the config with an install_script and (optionally) uninstall_script
@ -24,4 +24,4 @@ require'lspconfig/configs'.jdtls = nil -- important, unset the loaded config aga
-- uninstall_script = nil -- can be omitted
-- })
require'lspinstall'.setup()
require("lspinstall").setup()

View file

@ -1,8 +1,7 @@
local M = {}
M.config = function()
vim.g.matchup_matchparen_offscreen = {method = 'popup'}
vim.g.matchup_matchparen_offscreen = { method = "popup" }
end
return M

View file

@ -1,78 +1,81 @@
--if not package.loaded['nvim-tree.view'] then
-- return
--end
local M = {}
M.config = function()
local g = vim.g
local g = vim.g
vim.o.termguicolors = true
vim.o.termguicolors = true
g.nvim_tree_side = "left"
g.nvim_tree_width = 30
g.nvim_tree_ignore = {".git", "node_modules", ".cache"}
g.nvim_tree_auto_open = 1
g.nvim_tree_auto_close = 0
g.nvim_tree_quit_on_open = 0
g.nvim_tree_follow = 1
g.nvim_tree_indent_markers = 1
g.nvim_tree_hide_dotfiles = 1
g.nvim_tree_git_hl = 1
g.nvim_tree_root_folder_modifier = ":t"
g.nvim_tree_tab_open = 0
g.nvim_tree_allow_resize = 1
g.nvim_tree_lsp_diagnostics = 1
g.nvim_tree_auto_ignore_ft = {'startify', 'dashboard'}
g.nvim_tree_side = "left"
g.nvim_tree_width = 30
g.nvim_tree_ignore = { ".git", "node_modules", ".cache" }
g.nvim_tree_auto_open = 1
g.nvim_tree_auto_close = 0
g.nvim_tree_quit_on_open = 0
g.nvim_tree_follow = 1
g.nvim_tree_indent_markers = 1
g.nvim_tree_hide_dotfiles = 1
g.nvim_tree_git_hl = 1
g.nvim_tree_root_folder_modifier = ":t"
g.nvim_tree_tab_open = 0
g.nvim_tree_allow_resize = 1
g.nvim_tree_lsp_diagnostics = 1
g.nvim_tree_auto_ignore_ft = { "startify", "dashboard" }
g.nvim_tree_show_icons = {
git = 1,
folders = 1,
files = 1,
folder_arrows = 1
}
g.nvim_tree_show_icons = {
git = 1,
folders = 1,
files = 1,
folder_arrows = 1,
}
vim.g.nvim_tree_icons = {
default = '',
symlink = '',
git = {
unstaged = "",
staged = "S",
unmerged = "",
renamed = "",
deleted = "",
untracked = "U",
ignored = ""
},
folder = {
default = "",
open = "",
empty = "",
empty_open = "",
symlink = ""
}
}
local tree_cb = require'nvim-tree.config'.nvim_tree_callback
vim.g.nvim_tree_icons = {
default = "",
symlink = "",
git = {
unstaged = "",
staged = "S",
unmerged = "",
renamed = "",
deleted = "",
untracked = "U",
ignored = "",
},
folder = {
default = "",
open = "",
empty = "",
empty_open = "",
symlink = "",
},
}
local tree_cb = require("nvim-tree.config").nvim_tree_callback
vim.g.nvim_tree_bindings = {
{key = {"l", "<CR>", "o"}, cb = tree_cb("edit")},
{key = "h", cb = tree_cb("close_node")},
{key = "v", cb = tree_cb("vsplit")}
}
vim.g.nvim_tree_bindings = {
{ key = { "l", "<CR>", "o" }, cb = tree_cb "edit" },
{ key = "h", cb = tree_cb "close_node" },
{ key = "v", cb = tree_cb "vsplit" },
}
end
local view = require 'nvim-tree.view'
local view = require "nvim-tree.view"
M.toggle_tree = function()
if view.win_open() then
require'nvim-tree'.close()
if package.loaded['bufferline.state'] then
require'bufferline.state'.set_offset(0)
end
else
if package.loaded['bufferline.state'] then
-- require'bufferline.state'.set_offset(31, 'File Explorer')
require'bufferline.state'.set_offset(31, '')
end
require'nvim-tree'.find_file(true)
if view.win_open() then
require("nvim-tree").close()
if package.loaded["bufferline.state"] then
require("bufferline.state").set_offset(0)
end
else
if package.loaded["bufferline.state"] then
-- require'bufferline.state'.set_offset(31, 'File Explorer')
require("bufferline.state").set_offset(31, "")
end
require("nvim-tree").find_file(true)
end
end
return M

View file

@ -1,4 +1,4 @@
-- Trigger a highlight in the appropriate direction when pressing these keys:
-- vim.cmd('let g:qs_highlight_on_keys = [\'f\', \'F\', \'t\', \'T\']')
vim.g.qs_highlight_on_keys = {'f', 'F', 't', 'T'}
vim.g.qs_max_chars=150
vim.g.qs_highlight_on_keys = { "f", "F", "t", "T" }
vim.g.qs_max_chars = 150

View file

@ -3,4 +3,4 @@
vim.g.rnvimr_draw_border = 1
vim.g.rnvimr_pick_enable = 1
vim.g.rnvimr_bw_enable = 1
vim.api.nvim_set_keymap('n', '-', ':RnvimrToggle<CR>', {noremap = true, silent = true})
vim.api.nvim_set_keymap("n", "-", ":RnvimrToggle<CR>", { noremap = true, silent = true })

View file

@ -1,14 +1,14 @@
local M = {}
M.config = function()
local snap = require "snap"
local layout = snap.get"layout".bottom
local file = snap.config.file:with {consumer = "fzy", layout = layout}
local vimgrep = snap.config.vimgrep:with {layout = layout}
snap.register.command("find_files", file {producer = "ripgrep.file"})
snap.register.command("buffers", file {producer = "vim.buffer"})
snap.register.command("oldfiles", file {producer = "vim.oldfile"})
snap.register.command("live_grep", vimgrep {})
local snap = require "snap"
local layout = snap.get("layout").bottom
local file = snap.config.file:with { consumer = "fzy", layout = layout }
local vimgrep = snap.config.vimgrep:with { layout = layout }
snap.register.command("find_files", file { producer = "ripgrep.file" })
snap.register.command("buffers", file { producer = "vim.buffer" })
snap.register.command("oldfiles", file { producer = "vim.oldfile" })
snap.register.command("live_grep", vimgrep {})
end
return M

View file

@ -1,51 +1,50 @@
require('spectre').setup({
mapping={
['toggle_line'] = {
map = "dd",
cmd = "<cmd>lua require('spectre').toggle_line()<CR>",
desc = "toggle current item"
require("spectre").setup {
mapping = {
["toggle_line"] = {
map = "dd",
cmd = "<cmd>lua require('spectre').toggle_line()<CR>",
desc = "toggle current item",
},
['enter_file'] = {
map = "<cr>",
cmd = "<cmd>lua require('spectre.actions').select_entry()<CR>",
desc = "goto current file"
["enter_file"] = {
map = "<cr>",
cmd = "<cmd>lua require('spectre.actions').select_entry()<CR>",
desc = "goto current file",
},
['send_to_qf'] = {
map = "<Blash>q",
cmd = "<cmd>lua require('spectre.actions').send_to_qf()<CR>",
desc = "send all item to quickfix"
["send_to_qf"] = {
map = "<Blash>q",
cmd = "<cmd>lua require('spectre.actions').send_to_qf()<CR>",
desc = "send all item to quickfix",
},
['replace_cmd'] = {
map = "<Bslash>c",
cmd = "<cmd>lua require('spectre.actions').replace_cmd()<CR>",
desc = "input replace vim command"
["replace_cmd"] = {
map = "<Bslash>c",
cmd = "<cmd>lua require('spectre.actions').replace_cmd()<CR>",
desc = "input replace vim command",
},
['show_option_menu'] = {
map = "<Bslash>o",
cmd = "<cmd>lua require('spectre').show_options()<CR>",
desc = "show option"
["show_option_menu"] = {
map = "<Bslash>o",
cmd = "<cmd>lua require('spectre').show_options()<CR>",
desc = "show option",
},
['run_replace'] = {
map = "<Bslash>R",
cmd = "<cmd>lua require('spectre.actions').run_replace()<CR>",
desc = "replace all"
["run_replace"] = {
map = "<Bslash>R",
cmd = "<cmd>lua require('spectre.actions').run_replace()<CR>",
desc = "replace all",
},
['change_view_mode'] = {
map = "<Bslash>v",
cmd = "<cmd>lua require('spectre').change_view()<CR>",
desc = "change result view mode"
["change_view_mode"] = {
map = "<Bslash>v",
cmd = "<cmd>lua require('spectre').change_view()<CR>",
desc = "change result view mode",
},
['toggle_ignore_case'] = {
["toggle_ignore_case"] = {
map = "ti",
cmd = "<cmd>lua require('spectre').change_options('ignore-case')<CR>",
desc = "toggle ignore case"
desc = "toggle ignore case",
},
['toggle_ignore_hidden'] = {
["toggle_ignore_hidden"] = {
map = "th",
cmd = "<cmd>lua require('spectre').change_options('hidden')<CR>",
desc = "toggle search hidden"
desc = "toggle search hidden",
},
-- you can put your mapping here it only use normal mode
}
})
},
}

View file

@ -1,15 +1,15 @@
vim.g.symbols_outline = {
highlight_hovered_item = true,
show_guides = true,
auto_preview = true,
position = 'right',
keymaps = {
close = "<Esc>",
goto_location = "<Cr>",
focus_location = "o",
hover_symbol = "<C-space>",
rename_symbol = "r",
code_actions = "a",
},
lsp_blacklist = {},
highlight_hovered_item = true,
show_guides = true,
auto_preview = true,
position = "right",
keymaps = {
close = "<Esc>",
goto_location = "<Cr>",
focus_location = "o",
hover_symbol = "<C-space>",
rename_symbol = "r",
code_actions = "a",
},
lsp_blacklist = {},
}

View file

@ -1,82 +1,86 @@
local actions = require('telescope.actions')
local actions = require "telescope.actions"
-- if O.plugin.trouble.active then
-- local trouble = require("trouble.providers.telescope")
-- end
-- Global remapping
------------------------------
-- '--color=never',
require('telescope').setup {
defaults = {
find_command = {
'rg', '--no-heading', '--with-filename', '--line-number',
'--column', '--smart-case'
},
prompt_prefix = "",
selection_caret = "",
entry_prefix = " ",
initial_mode = "insert",
selection_strategy = "reset",
sorting_strategy = "descending",
layout_strategy = "horizontal",
layout_config = {
width = 0.75,
prompt_position = "bottom",
preview_cutoff = 120,
horizontal = {mirror = false},
vertical = {mirror = false}
},
file_sorter = require'telescope.sorters'.get_fzy_sorter,
file_ignore_patterns = {},
generic_sorter = require'telescope.sorters'.get_generic_fuzzy_sorter,
shorten_path = true,
winblend = 0,
border = {},
borderchars = {'', '', '', '', '', '', '', ''},
color_devicons = true,
use_less = true,
set_env = {['COLORTERM'] = 'truecolor'}, -- default = nil,
file_previewer = require'telescope.previewers'.vim_buffer_cat.new,
grep_previewer = require'telescope.previewers'.vim_buffer_vimgrep.new,
qflist_previewer = require'telescope.previewers'.vim_buffer_qflist.new,
-- Developer configurations: Not meant for general override
buffer_previewer_maker = require'telescope.previewers'.buffer_previewer_maker,
mappings = {
i = {
["<C-c>"] = actions.close,
["<C-j>"] = actions.move_selection_next,
["<C-k>"] = actions.move_selection_previous,
-- ["<c-t>"] = trouble.open_with_trouble,
["<C-q>"] = actions.smart_send_to_qflist + actions.open_qflist,
-- To disable a keymap, put [map] = false
-- So, to not map "<C-n>", just put
-- ["<c-x>"] = false,
-- ["<esc>"] = actions.close,
-- Otherwise, just set the mapping to the function that you want it to be.
-- ["<C-i>"] = actions.select_horizontal,
-- Add up multiple actions
["<CR>"] = actions.select_default + actions.center
-- You can perform as many actions in a row as you like
-- ["<CR>"] = actions.select_default + actions.center + my_cool_custom_action,
},
n = {
["<C-j>"] = actions.move_selection_next,
["<C-k>"] = actions.move_selection_previous,
-- ["<c-t>"] = trouble.open_with_trouble,
["<C-q>"] = actions.smart_send_to_qflist + actions.open_qflist
-- ["<C-i>"] = my_cool_custom_action,
}
}
require("telescope").setup {
defaults = {
find_command = {
"rg",
"--no-heading",
"--with-filename",
"--line-number",
"--column",
"--smart-case",
},
extensions = {
fzy_native = {
override_generic_sorter = false,
override_file_sorter = true
}
}
prompt_prefix = "",
selection_caret = "",
entry_prefix = " ",
initial_mode = "insert",
selection_strategy = "reset",
sorting_strategy = "descending",
layout_strategy = "horizontal",
layout_config = {
width = 0.75,
prompt_position = "bottom",
preview_cutoff = 120,
horizontal = { mirror = false },
vertical = { mirror = false },
},
file_sorter = require("telescope.sorters").get_fzy_sorter,
file_ignore_patterns = {},
generic_sorter = require("telescope.sorters").get_generic_fuzzy_sorter,
shorten_path = true,
winblend = 0,
border = {},
borderchars = { "", "", "", "", "", "", "", "" },
color_devicons = true,
use_less = true,
set_env = { ["COLORTERM"] = "truecolor" }, -- default = nil,
file_previewer = require("telescope.previewers").vim_buffer_cat.new,
grep_previewer = require("telescope.previewers").vim_buffer_vimgrep.new,
qflist_previewer = require("telescope.previewers").vim_buffer_qflist.new,
-- Developer configurations: Not meant for general override
buffer_previewer_maker = require("telescope.previewers").buffer_previewer_maker,
mappings = {
i = {
["<C-c>"] = actions.close,
["<C-j>"] = actions.move_selection_next,
["<C-k>"] = actions.move_selection_previous,
-- ["<c-t>"] = trouble.open_with_trouble,
["<C-q>"] = actions.smart_send_to_qflist + actions.open_qflist,
-- To disable a keymap, put [map] = false
-- So, to not map "<C-n>", just put
-- ["<c-x>"] = false,
-- ["<esc>"] = actions.close,
-- Otherwise, just set the mapping to the function that you want it to be.
-- ["<C-i>"] = actions.select_horizontal,
-- Add up multiple actions
["<CR>"] = actions.select_default + actions.center,
-- You can perform as many actions in a row as you like
-- ["<CR>"] = actions.select_default + actions.center + my_cool_custom_action,
},
n = {
["<C-j>"] = actions.move_selection_next,
["<C-k>"] = actions.move_selection_previous,
-- ["<c-t>"] = trouble.open_with_trouble,
["<C-q>"] = actions.smart_send_to_qflist + actions.open_qflist,
-- ["<C-i>"] = my_cool_custom_action,
},
},
},
extensions = {
fzy_native = {
override_generic_sorter = false,
override_file_sorter = true,
},
},
}
-- require'telescope'.load_extension('project')

View file

@ -1,361 +1,370 @@
local lush = require('lush')
local lush = require "lush"
local hsl = lush.hsl
local theme = lush(function()
local c = {
bg = hsl("#212121"),
bg1 = hsl("#2a2a2a"),
-- bg2 = hsl("#3a3a3a"),
bg2 = hsl("#383d45"),
local c = {
bg = hsl "#212121",
bg1 = hsl "#2a2a2a",
-- bg2 = hsl("#3a3a3a"),
bg2 = hsl "#383d45",
white = hsl("#c8c9d1"),
white = hsl "#c8c9d1",
gray = hsl("#858585"),
light_gray = hsl("#c8c9c1"),
gray = hsl "#858585",
light_gray = hsl "#c8c9c1",
error_red = hsl("#F44747"),
warning_orange = hsl("#ff8800"),
info_yellow = hsl("#ffcc66"),
hint_blue = hsl("#4fc1ff"),
error_red = hsl "#F44747",
warning_orange = hsl "#ff8800",
info_yellow = hsl "#ffcc66",
hint_blue = hsl "#4fc1ff",
red = hsl("#b04b57"),
red = hsl "#b04b57",
blue = hsl("#5486c0"),
gray_blue = hsl("#66899d"),
blue = hsl "#5486c0",
gray_blue = hsl "#66899d",
-- yellow = hsl("#ffcb6b"),
yellow = hsl("#eeba5a"),
-- yellow = hsl("#ffcb6b"),
yellow = hsl "#eeba5a",
-- orange = hsl("#c98a75"),
orange = hsl("#c6735a"),
-- orange = hsl("#c98a75"),
orange = hsl "#c6735a",
green = hsl("#87b379"),
light_green = hsl("#b2d77c"),
green = hsl "#87b379",
light_green = hsl "#b2d77c",
-- aqua = hsl("#46b1d0"),
aqua = hsl("#65a7c5"),
-- aqua = hsl("#46b1d0"),
aqua = hsl "#65a7c5",
purple = hsl("#bf83c1"),
pale_purple = hsl("#7199ee"),
purple = hsl "#bf83c1",
pale_purple = hsl "#7199ee",
sign_add = hsl("#587C0C"),
sign_change = hsl("#0C7D9D"),
sign_delete = hsl("#94151B"),
sign_add = hsl "#587C0C",
sign_change = hsl "#0C7D9D",
sign_delete = hsl "#94151B",
test = hsl("#ff00ff")
}
return {
Normal {bg = c.bg, fg = c.white, gui = "NONE"}, -- used for the columns set with 'colorcolumn'
SignColumn {Normal},
ModeMsg {Normal},
MsgArea {Normal},
MsgSeparator {Normal},
SpellBad {bg = "NONE", fg = c.white, gui = "underline", sp = c.red},
SpellCap {bg = "NONE", fg = c.white, gui = "underline", sp = c.yellow},
SpellLocal {bg = "NONE", fg = c.white, gui = "underline", sp = c.green},
SpellRare {bg = "NONE", fg = c.white, gui = "underline", sp = c.blue},
NormalNC {Normal},
Pmenu {bg = c.bg2, fg = c.white, gui = "NONE"},
PmenuSel {bg = c.gray_blue, fg = c.bg1.da(5), gui = "NONE"},
WildMenu {PmenuSel}, -- Non Defaults
CursorLineNr {bg = "NONE", fg = c.light_gray, gui = "bold"},
Comment {bg = "NONE", fg = c.gray, gui = "italic"}, -- any comment
Folded {bg = c.bg1, fg = c.gray, gui = "NONE"},
FoldColumn {Normal, fg = c.gray, gui = "NONE"},
LineNr {bg = "NONE", fg = c.gray, gui = "NONE"},
FloatBorder {bg = c.bg1, fg = c.gray, gui = "NONE"},
Whitespace {bg = "NONE", fg = c.gray.da(35), gui = "NONE"},
VertSplit {bg = "NONE", fg = c.bg2, gui = "NONE"},
CursorLine {bg = c.bg1, fg = "NONE", gui = "NONE"},
CursorColumn {CursorLine},
ColorColumn {CursorLine},
NormalFloat {bg = c.bg2.da(30), fg = "NONE", gui = "NONE"},
Visual {bg = c.bg2.da(25), fg = "NONE", gui = "NONE"},
VisualNOS {Visual}, WarningMsg {bg = "NONE", fg = c.red, gui = "NONE"},
DiffText {bg = "NONE", fg = "NONE", gui = "NONE"},
DiffAdd {bg = c.sign_add, fg = "NONE", gui = "NONE"},
DiffChange {bg = c.sign_change, fg = "NONE", gui = "NONE"},
DiffDelete {bg = c.sign_delete, fg = "NONE", gui = "NONE"},
QuickFixLine {CursorLine},
PmenuSbar {bg = c.bg2.li(15), fg = "NONE", gui = "NONE"},
PmenuThumb {bg = c.white, fg = "NONE", gui = "NONE"},
MatchParen {CursorLine, fg = "NONE", gui = "NONE"},
Cursor {fg = "NONE", bg = "NONE", gui = "reverse"},
lCursor {Cursor},
CursorIM {Cursor},
TermCursor {Cursor}, TermCursorNC {Cursor},
Conceal {bg = "NONE", fg = c.blue, gui = "NONE"},
Directory {bg = "NONE", fg = c.blue, gui = "NONE"},
SpecialKey {bg = "NONE", fg = c.blue, gui = "bold"},
Title {bg = "NONE", fg = c.blue, gui = "bold"},
ErrorMsg {bg = "NONE", fg = c.error_red, gui = "NONE"},
Search {bg = c.gray_blue, fg = c.white},
IncSearch {Search},
Substitute {Search},
MoreMsg {bg = "NONE", fg = c.aqua, gui = "NONE"},
Question {MoreMsg},
EndOfBuffer {bg = "NONE", fg = c.bg, gui = "NONE"},
NonText {EndOfBuffer},
test = hsl "#ff00ff",
}
return {
Normal { bg = c.bg, fg = c.white, gui = "NONE" }, -- used for the columns set with 'colorcolumn'
SignColumn { Normal },
ModeMsg { Normal },
MsgArea { Normal },
MsgSeparator { Normal },
SpellBad { bg = "NONE", fg = c.white, gui = "underline", sp = c.red },
SpellCap { bg = "NONE", fg = c.white, gui = "underline", sp = c.yellow },
SpellLocal { bg = "NONE", fg = c.white, gui = "underline", sp = c.green },
SpellRare { bg = "NONE", fg = c.white, gui = "underline", sp = c.blue },
NormalNC { Normal },
Pmenu { bg = c.bg2, fg = c.white, gui = "NONE" },
PmenuSel { bg = c.gray_blue, fg = c.bg1.da(5), gui = "NONE" },
WildMenu { PmenuSel }, -- Non Defaults
CursorLineNr { bg = "NONE", fg = c.light_gray, gui = "bold" },
Comment { bg = "NONE", fg = c.gray, gui = "italic" }, -- any comment
Folded { bg = c.bg1, fg = c.gray, gui = "NONE" },
FoldColumn { Normal, fg = c.gray, gui = "NONE" },
LineNr { bg = "NONE", fg = c.gray, gui = "NONE" },
FloatBorder { bg = c.bg1, fg = c.gray, gui = "NONE" },
Whitespace { bg = "NONE", fg = c.gray.da(35), gui = "NONE" },
VertSplit { bg = "NONE", fg = c.bg2, gui = "NONE" },
CursorLine { bg = c.bg1, fg = "NONE", gui = "NONE" },
CursorColumn { CursorLine },
ColorColumn { CursorLine },
NormalFloat { bg = c.bg2.da(30), fg = "NONE", gui = "NONE" },
Visual { bg = c.bg2.da(25), fg = "NONE", gui = "NONE" },
VisualNOS { Visual },
WarningMsg { bg = "NONE", fg = c.red, gui = "NONE" },
DiffText { bg = "NONE", fg = "NONE", gui = "NONE" },
DiffAdd { bg = c.sign_add, fg = "NONE", gui = "NONE" },
DiffChange { bg = c.sign_change, fg = "NONE", gui = "NONE" },
DiffDelete { bg = c.sign_delete, fg = "NONE", gui = "NONE" },
QuickFixLine { CursorLine },
PmenuSbar { bg = c.bg2.li(15), fg = "NONE", gui = "NONE" },
PmenuThumb { bg = c.white, fg = "NONE", gui = "NONE" },
MatchParen { CursorLine, fg = "NONE", gui = "NONE" },
Cursor { fg = "NONE", bg = "NONE", gui = "reverse" },
lCursor { Cursor },
CursorIM { Cursor },
TermCursor { Cursor },
TermCursorNC { Cursor },
Conceal { bg = "NONE", fg = c.blue, gui = "NONE" },
Directory { bg = "NONE", fg = c.blue, gui = "NONE" },
SpecialKey { bg = "NONE", fg = c.blue, gui = "bold" },
Title { bg = "NONE", fg = c.blue, gui = "bold" },
ErrorMsg { bg = "NONE", fg = c.error_red, gui = "NONE" },
Search { bg = c.gray_blue, fg = c.white },
IncSearch { Search },
Substitute { Search },
MoreMsg { bg = "NONE", fg = c.aqua, gui = "NONE" },
Question { MoreMsg },
EndOfBuffer { bg = "NONE", fg = c.bg, gui = "NONE" },
NonText { EndOfBuffer },
String {fg = c.green},
Character {fg = c.light_green},
Constant {fg = c.orange},
Number {fg = c.red},
Boolean {fg = c.red},
Float {fg = c.red},
String { fg = c.green },
Character { fg = c.light_green },
Constant { fg = c.orange },
Number { fg = c.red },
Boolean { fg = c.red },
Float { fg = c.red },
Identifier {fg = c.white},
Function {fg = c.yellow},
Operator {fg = c.gray_blue},
Identifier { fg = c.white },
Function { fg = c.yellow },
Operator { fg = c.gray_blue },
Type {fg = c.purple},
StorageClass {Type},
Structure {Type},
Typedef {Type},
Type { fg = c.purple },
StorageClass { Type },
Structure { Type },
Typedef { Type },
Keyword {fg = c.blue},
Statement {Keyword },
Conditional {Keyword},
Repeat {Keyword},
Label {Keyword},
Exception {Keyword},
Keyword { fg = c.blue },
Statement { Keyword },
Conditional { Keyword },
Repeat { Keyword },
Label { Keyword },
Exception { Keyword },
Include {Keyword},
PreProc {fg = c.aqua},
Define {PreProc},
Macro {PreProc},
PreCondit {PreProc},
Include { Keyword },
PreProc { fg = c.aqua },
Define { PreProc },
Macro { PreProc },
PreCondit { PreProc },
Special { fg = c.orange },
SpecialChar { Character },
Tag { fg = c.pale_purple },
Debug { fg = c.red },
Delimiter { fg = c.white.da(25) },
SpecialComment { fg = c.gray },
Underlined { fg = "NONE", gui = "underline" },
Bold { fg = "NONE", gui = "bold" },
Italic { fg = "NONE", gui = "italic" },
Special {fg = c.orange},
SpecialChar {Character},
Tag {fg = c.pale_purple},
Debug {fg = c.red},
Delimiter {fg = c.white.da(25)},
SpecialComment {fg = c.gray},
Underlined {fg = "NONE", gui = "underline"},
Bold {fg = "NONE", gui = "bold"},
Italic {fg = "NONE", gui = "italic"},
-- Todo
-- ("Ignore", below, may be invisible...)
Ignore { fg = c.white },
Todo { bg = "NONE", fg = c.red, gui = "bold" },
Error { fg = c.error_red },
-- Todo
-- ("Ignore", below, may be invisible...)
Ignore {fg = c.white},
Todo {bg = "NONE", fg = c.red, gui = "bold"},
Error {fg = c.error_red},
-- Treesitter
TSComment { Comment }, -- comment blocks.
luaTSConstructor { bg = "NONE", fg = c.white.da(25) }, -- override Lua curly braces
TSAnnotation { bg = "NONE", fg = c.aqua }, -- For C++/Dart attributes, annotations that can be attached to the code to denote some kind of meta information.
TSAttribute { bg = "NONE", fg = c.aqua }, -- (unstable) TODO: docs
TSConstructor { Type }, -- For constructor calls and definitions: `{ }` in Lua, and Java constructors.
TSType { Type }, -- types.
TSTypeBuiltin { Type }, -- builtin types.
TSConditional { Conditional }, -- keywords related to conditionnals.
TSException { Exception }, -- exception related keywords.
TSInclude { Include }, -- includes: `#include` in C, `use` or `extern crate` in Rust, or `require` in Lua.
TSKeyword { Keyword }, -- keywords that don't fall in previous categories.
TSKeywordFunction { Keyword }, -- keywords used to define a fuction.
TSLabel { Label }, -- labels: `label:` in C and `:label:` in Lua.
TSNamespace { bg = "NONE", fg = c.blue }, -- For identifiers referring to modules and namespaces.
TSRepeat { Repeat }, -- keywords related to loops.
TSConstant { Constant }, -- constants
TSConstBuiltin { Constant }, -- constant that are built in the language: `nil` in Lua.
TSFloat { Float }, -- floats.
TSNumber { Number }, -- all numbers
TSBoolean { Boolean }, -- booleans.
TSCharacter { Character }, -- characters.
TSError { bg = "NONE", fg = "NONE" }, -- For syntax/parser errors.
TSFunction { Function }, -- function (calls and definitions).
TSFuncBuiltin { Function }, -- builtin functions: `table.insert` in Lua.
TSMethod { Function }, -- method calls and definitions.
TSConstMacro { Macro }, -- constants that are defined by macros: `NULL` in C.
TSFuncMacro { Macro }, -- macro defined fuctions (calls and definitions): each `macro_rules` in Rust.
TSVariableBuiltin { bg = "NONE", fg = c.aqua }, -- Variable names that are defined by the languages, like `this` or `self`.
TSProperty { fg = c.aqua },
TSOperator { Operator }, -- any operator: `+`, but also `->` and `*` in C.
TSVariable { bg = "NONE", fg = c.white }, -- Any variable name that does not have another highlight.
TSField { bg = "NONE", fg = c.white }, -- For fields.
TSParameter { TSField }, -- parameters of a function.
TSParameterReference { TSParameter }, -- references to parameters of a function.
TSSymbol { Identifier }, -- identifiers referring to symbols or atoms.
TSText { fg = c.white }, -- strings considered text in a markup language.
TSPunctDelimiter { Delimiter }, -- delimiters ie: `.`
TSTagDelimiter { Delimiter }, -- Tag delimiter like `<` `>` `/`
TSPunctBracket { Delimiter }, -- brackets and parens.
TSPunctSpecial { Delimiter }, -- special punctutation that does not fall in the catagories before.
TSString { String }, -- strings.
TSStringRegex { TSString }, -- regexes.
TSStringEscape { Character }, -- escape characters within a string.
TSWarning { Todo }, -- Variable names that are defined by the languages, like `this` or `self`.
TSTag { Tag }, -- Tags like html tag names.
TSEmphasis { gui = "italic" }, -- text to be represented with emphasis.
TSUnderline { gui = "underline" }, -- text to be represented with an underline.
TSStrike { gui = "strikethrough" }, -- strikethrough text.
TSTitle { Title }, -- Text that is part of a title.
TSLiteral { String }, -- Literal text.
TSURI { fg = c.aqua }, -- Any URI like a link or email.
-- TSNone { }, -- TODO: docs
-- Treesitter
TSComment {Comment}, -- comment blocks.
luaTSConstructor {bg = "NONE", fg = c.white.da(25)}, -- override Lua curly braces
TSAnnotation {bg = "NONE", fg = c.aqua}, -- For C++/Dart attributes, annotations that can be attached to the code to denote some kind of meta information.
TSAttribute {bg = "NONE", fg = c.aqua}, -- (unstable) TODO: docs
TSConstructor {Type}, -- For constructor calls and definitions: `{ }` in Lua, and Java constructors.
TSType {Type}, -- types.
TSTypeBuiltin {Type}, -- builtin types.
TSConditional {Conditional}, -- keywords related to conditionnals.
TSException {Exception}, -- exception related keywords.
TSInclude {Include}, -- includes: `#include` in C, `use` or `extern crate` in Rust, or `require` in Lua.
TSKeyword {Keyword}, -- keywords that don't fall in previous categories.
TSKeywordFunction {Keyword}, -- keywords used to define a fuction.
TSLabel {Label}, -- labels: `label:` in C and `:label:` in Lua.
TSNamespace {bg = "NONE", fg = c.blue}, -- For identifiers referring to modules and namespaces.
TSRepeat {Repeat}, -- keywords related to loops.
TSConstant {Constant}, -- constants
TSConstBuiltin {Constant}, -- constant that are built in the language: `nil` in Lua.
TSFloat {Float}, -- floats.
TSNumber {Number}, -- all numbers
TSBoolean {Boolean}, -- booleans.
TSCharacter {Character}, -- characters.
TSError {bg = "NONE", fg = "NONE"}, -- For syntax/parser errors.
TSFunction {Function}, -- function (calls and definitions).
TSFuncBuiltin {Function}, -- builtin functions: `table.insert` in Lua.
TSMethod {Function}, -- method calls and definitions.
TSConstMacro {Macro}, -- constants that are defined by macros: `NULL` in C.
TSFuncMacro {Macro}, -- macro defined fuctions (calls and definitions): each `macro_rules` in Rust.
TSVariableBuiltin {bg = "NONE", fg = c.aqua}, -- Variable names that are defined by the languages, like `this` or `self`.
TSProperty {fg = c.aqua},
TSOperator {Operator}, -- any operator: `+`, but also `->` and `*` in C.
TSVariable {bg = "NONE", fg = c.white}, -- Any variable name that does not have another highlight.
TSField {bg = "NONE", fg = c.white}, -- For fields.
TSParameter {TSField}, -- parameters of a function.
TSParameterReference {TSParameter}, -- references to parameters of a function.
TSSymbol {Identifier}, -- identifiers referring to symbols or atoms.
TSText {fg = c.white}, -- strings considered text in a markup language.
TSPunctDelimiter {Delimiter}, -- delimiters ie: `.`
TSTagDelimiter {Delimiter}, -- Tag delimiter like `<` `>` `/`
TSPunctBracket {Delimiter}, -- brackets and parens.
TSPunctSpecial {Delimiter}, -- special punctutation that does not fall in the catagories before.
TSString {String}, -- strings.
TSStringRegex {TSString}, -- regexes.
TSStringEscape {Character}, -- escape characters within a string.
TSWarning {Todo}, -- Variable names that are defined by the languages, like `this` or `self`.
TSTag {Tag}, -- Tags like html tag names.
TSEmphasis {gui = "italic"}, -- text to be represented with emphasis.
TSUnderline {gui = "underline"}, -- text to be represented with an underline.
TSStrike {gui = "strikethrough"}, -- strikethrough text.
TSTitle {Title}, -- Text that is part of a title.
TSLiteral {String}, -- Literal text.
TSURI {fg = c.aqua}, -- Any URI like a link or email.
-- TSNone { }, -- TODO: docs
-- These groups are for the native LSP client. Some other LSP clients may
-- use these groups, or use their own. Consult your LSP client's
-- documentation.
-- These groups are for the native LSP client. Some other LSP clients may
-- use these groups, or use their own. Consult your LSP client's
-- documentation.
LspDiagnosticsDefaultError { bg = "NONE", fg = c.error_red, gui = "NONE" },
LspDiagnosticsDefaultWarning { bg = "NONE", fg = c.warning_orange, gui = "NONE" },
LspDiagnosticsDefaultInformation { bg = "NONE", fg = c.info_yellow, gui = "NONE" },
LspDiagnosticsDefaultHint { bg = "NONE", fg = c.hint_blue, gui = "NONE" },
LspDiagnosticsDefaultError {bg = "NONE", fg = c.error_red, gui = "NONE"},
LspDiagnosticsDefaultWarning {bg = "NONE", fg = c.warning_orange, gui = "NONE"},
LspDiagnosticsDefaultInformation {bg = "NONE", fg = c.info_yellow, gui = "NONE"},
LspDiagnosticsDefaultHint {bg = "NONE", fg = c.hint_blue, gui = "NONE"},
LspDiagnosticsVirtualTextError { LspDiagnosticsDefaultError },
LspDiagnosticsVirtualTextWarning { LspDiagnosticsDefaultWarning },
LspDiagnosticsVirtualTextInformation { LspDiagnosticsDefaultInformation },
LspDiagnosticsVirtualTextHint { LspDiagnosticsDefaultHint },
LspDiagnosticsVirtualTextError {LspDiagnosticsDefaultError},
LspDiagnosticsVirtualTextWarning {LspDiagnosticsDefaultWarning},
LspDiagnosticsVirtualTextInformation {LspDiagnosticsDefaultInformation},
LspDiagnosticsVirtualTextHint {LspDiagnosticsDefaultHint},
LspDiagnosticsFloatingError {fg = c.error_red, gui = "NONE"},
LspDiagnosticsFloatingWarning {fg = c.warning_orange, gui = "NONE"},
LspDiagnosticsFloatingInformation {fg = c.info_yellow, gui = "NONE"},
LspDiagnosticsFloatingHint {fg = c.hint_blue, gui = "NONE"},
LspDiagnosticsFloatingError { fg = c.error_red, gui = "NONE" },
LspDiagnosticsFloatingWarning { fg = c.warning_orange, gui = "NONE" },
LspDiagnosticsFloatingInformation { fg = c.info_yellow, gui = "NONE" },
LspDiagnosticsFloatingHint { fg = c.hint_blue, gui = "NONE" },
LspDiagnosticsSignError {fg = c.error_red, gui = "NONE"},
LspDiagnosticsSignWarning {fg = c.warning_orange, gui = "NONE"},
LspDiagnosticsSignInformation {fg = c.info_yellow, gui = "NONE"},
LspDiagnosticsSignHint {fg = c.hint_blue, gui = "NONE"}, -- Tree-Sitter
LspDiagnosticsSignError { fg = c.error_red, gui = "NONE" },
LspDiagnosticsSignWarning { fg = c.warning_orange, gui = "NONE" },
LspDiagnosticsSignInformation { fg = c.info_yellow, gui = "NONE" },
LspDiagnosticsSignHint { fg = c.hint_blue, gui = "NONE" }, -- Tree-Sitter
LspDiagnosticsError {LspDiagnosticsSignError},
LspDiagnosticsWarning {LspDiagnosticsSignWarning},
LspDiagnosticsInformation {LspDiagnosticsSignInformation},
LspDiagnosticsHint {LspDiagnosticsSignHint},
LspDiagnosticsError { LspDiagnosticsSignError },
LspDiagnosticsWarning { LspDiagnosticsSignWarning },
LspDiagnosticsInformation { LspDiagnosticsSignInformation },
LspDiagnosticsHint { LspDiagnosticsSignHint },
-- LspReferenceText {bg = c.bg1, fg = "NONE", gui = "underline"},
-- LspReferenceRead {bg = c.bg1, fg = "NONE", gui = "underline"},
-- LspReferenceWrite {bg = c.bg1, fg = "NONE", gui = "underline"},
-- LspReferenceText {bg = c.bg1, fg = "NONE", gui = "underline"},
-- LspReferenceRead {bg = c.bg1, fg = "NONE", gui = "underline"},
-- LspReferenceWrite {bg = c.bg1, fg = "NONE", gui = "underline"},
LspDiagnosticsUnderlineError {fg = "NONE", gui = "underline", sp = c.red},
LspDiagnosticsUnderlineWarning {fg = "NONE", gui = "underline", sp = c.yellow},
LspDiagnosticsUnderlineInformation {fg = "NONE", gui = "underline", sp = c.blue},
LspDiagnosticsUnderlineHint {fg = "NONE", gui = "underline", sp = c.green},
LspDiagnosticsUnderlineError { fg = "NONE", gui = "underline", sp = c.red },
LspDiagnosticsUnderlineWarning { fg = "NONE", gui = "underline", sp = c.yellow },
LspDiagnosticsUnderlineInformation { fg = "NONE", gui = "underline", sp = c.blue },
LspDiagnosticsUnderlineHint { fg = "NONE", gui = "underline", sp = c.green },
-- gitsigns.nvim
SignAdd {fg = c.sign_add},
SignChange {fg = c.sign_change},
SignDelete {fg = c.sign_delete}, -- Any URI like a link or email.
GitSignsAdd {fg = c.sign_add},
GitSignsChange { fg = c.sign_change},
GitSignsDelete {fg = c.sign_delete},
-- gitsigns.nvim
SignAdd { fg = c.sign_add },
SignChange { fg = c.sign_change },
SignDelete { fg = c.sign_delete }, -- Any URI like a link or email.
GitSignsAdd { fg = c.sign_add },
GitSignsChange { fg = c.sign_change },
GitSignsDelete { fg = c.sign_delete },
-- telescope.nvim
TelescopeSelection {bg = "NONE", fg = c.aqua},
TelescopeMatching {bg = "NONE", fg = c.red, gui = "bold"},
TelescopeBorder {bg = c.bg1, fg = c.gray}, -- nvim-tree.lua
-- telescope.nvim
TelescopeSelection { bg = "NONE", fg = c.aqua },
TelescopeMatching { bg = "NONE", fg = c.red, gui = "bold" },
TelescopeBorder { bg = c.bg1, fg = c.gray }, -- nvim-tree.lua
-- Nvimtree
NvimTreeFolderIcon {fg = c.blue},
NvimTreeIndentMarker {fg = c.gray},
NvimTreeNormal {fg = c.white.da(10), bg = c.bg1},
NvimTreeFolderName {fg = c.blue},
NvimTreeOpenedFolderName {fg = c.aqua.da(10), gui = "italic"},
NvimTreeOpenedFile {NvimTreeOpenedFolderName},
NvimTreeRootFolder {fg = c.blue.da(20)},
NvimTreeExecFile {fg = c.green},
NvimTreeImageFile {fg = c.purple},
NvimTreeSpecialFile {fg = c.aqua},
-- Nvimtree
NvimTreeFolderIcon { fg = c.blue },
NvimTreeIndentMarker { fg = c.gray },
NvimTreeNormal { fg = c.white.da(10), bg = c.bg1 },
NvimTreeFolderName { fg = c.blue },
NvimTreeOpenedFolderName { fg = c.aqua.da(10), gui = "italic" },
NvimTreeOpenedFile { NvimTreeOpenedFolderName },
NvimTreeRootFolder { fg = c.blue.da(20) },
NvimTreeExecFile { fg = c.green },
NvimTreeImageFile { fg = c.purple },
NvimTreeSpecialFile { fg = c.aqua },
NvimTreeGitStaged {fg = c.sign_add},
NvimTreeGitNew {fg = c.sign_add},
NvimTreeGitDirty {fg = c.sign_add},
NvimTreeGitRenamed {fg = c.sign_change},
NvimTreeGitMerge {fg = c.sign_change},
NvimTreeGitDelete {fg = c.sign_delete},
NvimTreeVertSplit {fg = c.bg1, bg = c.bg1},
NvimTreeGitStaged { fg = c.sign_add },
NvimTreeGitNew { fg = c.sign_add },
NvimTreeGitDirty { fg = c.sign_add },
NvimTreeGitRenamed { fg = c.sign_change },
NvimTreeGitMerge { fg = c.sign_change },
NvimTreeGitDelete { fg = c.sign_delete },
NvimTreeVertSplit { fg = c.bg1, bg = c.bg1 },
-- BarBar
TabLine {bg = c.bg1, fg = c.white, gui = "NONE"},
TabLineFill {bg = c.bg1, fg = c.white, gui = "NONE"},
TabLineSel {bg = c.blue, fg = c.bg1, gui = "NONE"},
-- BarBar
TabLine { bg = c.bg1, fg = c.white, gui = "NONE" },
TabLineFill { bg = c.bg1, fg = c.white, gui = "NONE" },
TabLineSel { bg = c.blue, fg = c.bg1, gui = "NONE" },
BufferCurrent {fg = c.fg, bg = c.bg},
BufferCurrentIndex {fg = c.aqua, bg = c.bg},
BufferCurrentMod {fg = c.info_yellow, bg = c.bg},
BufferCurrentSign {fg = c.aqua, bg = c.bg},
BufferCurrentTarget {fg = c.red, bg = c.bg, gui = "bold"},
BufferCurrent { fg = c.fg, bg = c.bg },
BufferCurrentIndex { fg = c.aqua, bg = c.bg },
BufferCurrentMod { fg = c.info_yellow, bg = c.bg },
BufferCurrentSign { fg = c.aqua, bg = c.bg },
BufferCurrentTarget { fg = c.red, bg = c.bg, gui = "bold" },
BufferVisible {fg = c.fg, bg = c.bg},
BufferVisibleIndex {fg = c.fg, bg = c.bg},
BufferVisibleMod {fg = c.info_yellow, bg = c.bg},
BufferVisibleSign {fg = c.info_yellow, bg = c.bg},
BufferVisibleTarget {fg = c.red, bg = c.bg, gui = "bold"},
BufferVisible { fg = c.fg, bg = c.bg },
BufferVisibleIndex { fg = c.fg, bg = c.bg },
BufferVisibleMod { fg = c.info_yellow, bg = c.bg },
BufferVisibleSign { fg = c.info_yellow, bg = c.bg },
BufferVisibleTarget { fg = c.red, bg = c.bg, gui = "bold" },
BufferInactive {fg = c.gray, bg = c.bg1},
BufferInactiveIndex {fg = c.gray, bg = c.bg1},
BufferInactiveMod {fg = c.info_yellow, bg = c.bg1},
BufferInactiveSign {fg = c.gray, bg = c.bg1},
BufferInactiveTarget {fg = c.red, bg = c.bg1},
BufferInactive { fg = c.gray, bg = c.bg1 },
BufferInactiveIndex { fg = c.gray, bg = c.bg1 },
BufferInactiveMod { fg = c.info_yellow, bg = c.bg1 },
BufferInactiveSign { fg = c.gray, bg = c.bg1 },
BufferInactiveTarget { fg = c.red, bg = c.bg1 },
-- some fix for html related stuff
htmlH1 {Title}, -- markdown stuff
mkdLink {fg = c.aqua, gui = "underline"},
mkdLineBreak {bg = "NONE", fg = "NONE", gui = "NONE"},
mkdHeading {fg = c.white},
mkdInlineURL {mkdLink},
mkdUnderline {fg = c.gray},
markdownUrl {mkdLink},
markdownCode {fg = c.orange, bg = "NONE"},
markdownLinkTextDelimiter {Delimiter},
markdownLinkDelimiter {Delimiter},
markdownIdDelimiter {Delimiter},
markdownLinkText {fg = c.aqua},
markdownItalic {fg = "NONE", gui = "italic"}, -- flutter-tools.nvim
FlutterWidgetGuides {fg = c.gray.li(10)}, -- statusline
-- some fix for html related stuff
htmlH1 { Title }, -- markdown stuff
mkdLink { fg = c.aqua, gui = "underline" },
mkdLineBreak { bg = "NONE", fg = "NONE", gui = "NONE" },
mkdHeading { fg = c.white },
mkdInlineURL { mkdLink },
mkdUnderline { fg = c.gray },
markdownUrl { mkdLink },
markdownCode { fg = c.orange, bg = "NONE" },
markdownLinkTextDelimiter { Delimiter },
markdownLinkDelimiter { Delimiter },
markdownIdDelimiter { Delimiter },
markdownLinkText { fg = c.aqua },
markdownItalic { fg = "NONE", gui = "italic" }, -- flutter-tools.nvim
FlutterWidgetGuides { fg = c.gray.li(10) }, -- statusline
StatusLine {bg = c.bg1, fg = c.white},
StatusLineNC {bg = c.bg1, fg = c.gray},
StatusLineMode {bg = c.gray, fg = c.bg, gui = "bold"},
StatusLineDeco {bg = c.bg2, fg = c.yellow},
StatusLineLCol {bg = c.bg2, fg = c.white},
StatusLineLColAlt {bg = c.bg1, fg = c.white},
StatusLineFT {bg = c.bg2, fg = c.white},
StatusLineFTAlt {bg = c.bg2, fg = c.white},
StatusLineGit {bg = c.gray, fg = c.bg},
StatusLineGitAlt {bg = c.gray, fg = c.bg},
StatusLineLSP {bg = c.bg1, fg = c.gray.li(25)},
StatusLineFileName {bg = c.bg1, fg = c.white, gui = "bold"},
StatusLine { bg = c.bg1, fg = c.white }, -- status line of current window
StatusLineNC { bg = c.bg1, fg = c.light_gray }, -- status lines of not-current windows Note: if this is equal to "StatusLine" Vim will use "^^^" in the status line of the current window.
StatusLineSeparator { bg = c.bg1, fg = "NONE" },
StatusLineGit { bg = c.bg1, fg = c.orange },
StatusLineGitAdd { bg = c.bg1, fg = c.green },
StatusLineGitChange { bg = c.bg1, fg = c.blue },
StatusLineGitDelete { bg = c.bg1, fg = c.red },
StatusLineLspDiagnosticsError { bg = c.bg1, fg = c.error_red, gui = "NONE" },
StatusLineLspDiagnosticsWarning { bg = c.bg1, fg = c.warning_orange, gui = "NONE" },
StatusLineLspDiagnosticsInformation { bg = c.bg1, fg = c.info_yellow, gui = "NONE" },
StatusLineLspDiagnosticsHint { bg = c.bg1, fg = c.hint_blue, gui = "NONE" },
StatusLineTreeSitter { bg = c.bg1, fg = c.green },
-- StatusLineMode {bg = c.gray, fg = c.bg, gui = "bold"},
-- StatusLineDeco {bg = c.bg2, fg = c.yellow},
-- StatusLineLCol {bg = c.bg2, fg = c.white},
-- StatusLineLColAlt {bg = c.bg1, fg = c.white},
-- StatusLineFT {bg = c.bg2, fg = c.white},
-- StatusLineFTAlt {bg = c.bg2, fg = c.white},
-- StatusLineGitAlt {bg = c.gray, fg = c.bg},
-- StatusLineLSP {bg = c.bg1, fg = c.gray.li(25)},
-- StatusLineFileName {bg = c.bg1, fg = c.white, gui = "bold"},
-- lsp-trouble.nvim
LspTroubleIndent {fg = c.gray.li(10)}, -- tabline stuff
-- lsp-trouble.nvim
LspTroubleIndent { fg = c.gray.li(10) }, -- tabline stuff
-- tabline diagnostic
TabLineError {LspDiagnosticsSignError},
TabLineWarning {LspDiagnosticsSignWarning},
TabLineHint {LspDiagnosticsSignHint},
TabLineInformation {LspDiagnosticsSignInformation}, -- which-key.nvim
-- tabline diagnostic
TabLineError { LspDiagnosticsSignError },
TabLineWarning { LspDiagnosticsSignWarning },
TabLineHint { LspDiagnosticsSignHint },
TabLineInformation { LspDiagnosticsSignInformation }, -- which-key.nvim
WhichKey {fg = c.purple}, -- nvim-compe
WhichKeySeperator {fg = c.green}, -- nvim-compe
WhichKeyGroup {fg = c.blue}, -- nvim-compe
WhichKeyDesc {fg = c.aqua}, -- nvim-compe
WhichKeyFloat {bg = c.bg1}, -- nvim-compe
WhichKey { fg = c.purple }, -- nvim-compe
WhichKeySeperator { fg = c.green }, -- nvim-compe
WhichKeyGroup { fg = c.blue }, -- nvim-compe
WhichKeyDesc { fg = c.aqua }, -- nvim-compe
WhichKeyFloat { bg = c.bg1 }, -- nvim-compe
CompeDocumentation { Pmenu, fg = "NONE" }, -- diffview
CompeDocumentation {Pmenu, fg = "NONE"}, -- diffview
DiffviewNormal { NvimTreeNormal },
DiffviewStatusAdded { SignAdd },
DiffviewStatusModified { SignChange },
DiffviewStatusRenamed { SignChange },
DiffviewStatusDeleted { SignDelete },
DiffviewFilePanelInsertion { SignAdd },
DiffviewFilePanelDeletion { SignDelete },
DiffviewVertSplit { fg = c.gray, bg = c.bg },
DiffviewNormal {NvimTreeNormal},
DiffviewStatusAdded {SignAdd},
DiffviewStatusModified {SignChange},
DiffviewStatusRenamed {SignChange},
DiffviewStatusDeleted {SignDelete},
DiffviewFilePanelInsertion {SignAdd},
DiffviewFilePanelDeletion {SignDelete},
DiffviewVertSplit {fg = c.gray, bg = c.bg},
DashboardHeader { fg = c.blue },
DashboardCenter { fg = c.purple },
DashboardFooter { fg = c.aqua },
DashboardHeader {fg = c.blue},
DashboardCenter {fg = c.purple},
DashboardFooter {fg = c.aqua},
IndentBlanklineContextChar { fg = c.gray.da(20) },
IndentBlanklineContextChar {fg = c.gray.da(20)},
CodiVirtualText {fg = c.hint_blue}
}
CodiVirtualText { fg = c.hint_blue },
}
end)
-- return our parsed theme for extension or use else where.

View file

@ -1,36 +1,39 @@
require'nvim-treesitter.configs'.setup {
ensure_installed = O.treesitter.ensure_installed, -- one of "all", "maintained" (parsers with maintainers), or a list of languages
ignore_install = O.treesitter.ignore_install,
matchup = {
enable = true -- mandatory, false will disable the whole extension
-- disable = { "c", "ruby" }, -- optional, list of language that will be disabled
},
highlight = {
enable = O.treesitter.highlight.enabled -- false will disable the whole extension
},
context_commentstring = {enable = O.plugin.ts_context_commentstring, config = {css = '// %s'}},
-- indent = {enable = true, disable = {"python", "html", "javascript"}},
-- TODO seems to be broken
indent = {enable = {"javascriptreact"}},
autotag = {enable = true},
-- if not package.loaded['nvim-treesitter'] then
-- return
-- end
playground = {
enable = O.plugin.ts_playground.active,
disable = {},
updatetime = 25, -- Debounced time for highlighting nodes in the playground from source code
persist_queries = false, -- Whether the query persists across vim sessions
keybindings = {
toggle_query_editor = 'o',
toggle_hl_groups = 'i',
toggle_injected_languages = 't',
toggle_anonymous_nodes = 'a',
toggle_language_display = 'I',
focus_language = 'f',
unfocus_language = 'F',
update = 'R',
goto_node = '<cr>',
show_help = '?'
}
}
require("nvim-treesitter.configs").setup {
ensure_installed = O.treesitter.ensure_installed, -- one of "all", "maintained" (parsers with maintainers), or a list of languages
ignore_install = O.treesitter.ignore_install,
matchup = {
enable = true, -- mandatory, false will disable the whole extension
-- disable = { "c", "ruby" }, -- optional, list of language that will be disabled
},
highlight = {
enable = O.treesitter.highlight.enabled, -- false will disable the whole extension
},
context_commentstring = { enable = O.plugin.ts_context_commentstring, config = { css = "// %s" } },
-- indent = {enable = true, disable = {"python", "html", "javascript"}},
-- TODO seems to be broken
indent = { enable = { "javascriptreact" } },
autotag = { enable = true },
playground = {
enable = O.plugin.ts_playground.active,
disable = {},
updatetime = 25, -- Debounced time for highlighting nodes in the playground from source code
persist_queries = false, -- Whether the query persists across vim sessions
keybindings = {
toggle_query_editor = "o",
toggle_hl_groups = "i",
toggle_injected_languages = "t",
toggle_anonymous_nodes = "a",
toggle_language_display = "I",
focus_language = "f",
unfocus_language = "F",
update = "R",
goto_node = "<cr>",
show_help = "?",
},
},
}

View file

@ -1,27 +1,81 @@
local lv_utils = {}
function lv_utils.define_augroups(definitions) -- {{{1
-- Create autocommand groups based on the passed definitions
--
-- The key will be the name of the group, and each definition
-- within the group should have:
-- 1. Trigger
-- 2. Pattern
-- 3. Text
-- just like how they would normally be defined from Vim itself
for group_name, definition in pairs(definitions) do
vim.cmd('augroup ' .. group_name)
vim.cmd('autocmd!')
-- Create autocommand groups based on the passed definitions
--
-- The key will be the name of the group, and each definition
-- within the group should have:
-- 1. Trigger
-- 2. Pattern
-- 3. Text
-- just like how they would normally be defined from Vim itself
for group_name, definition in pairs(definitions) do
vim.cmd("augroup " .. group_name)
vim.cmd "autocmd!"
for _, def in pairs(definition) do
local command = table.concat(vim.tbl_flatten {'autocmd', def}, ' ')
vim.cmd(command)
end
vim.cmd('augroup END')
for _, def in pairs(definition) do
local command = table.concat(vim.tbl_flatten { "autocmd", def }, " ")
vim.cmd(command)
end
vim.cmd "augroup END"
end
end
lv_utils.define_augroups {
_user_autocommands = O.user_autocommands,
_general_settings = {
{
"TextYankPost",
"*",
"lua require('vim.highlight').on_yank({higroup = 'Search', timeout = 200})",
},
{
"BufWinEnter",
"*",
"setlocal formatoptions-=c formatoptions-=r formatoptions-=o",
},
{
"BufRead",
"*",
"setlocal formatoptions-=c formatoptions-=r formatoptions-=o",
},
{
"BufNewFile",
"*",
"setlocal formatoptions-=c formatoptions-=r formatoptions-=o",
},
{ "VimLeavePre", "*", "set title set titleold=" },
},
-- _solidity = {
-- {'BufWinEnter', '.sol', 'setlocal filetype=solidity'}, {'BufRead', '*.sol', 'setlocal filetype=solidity'},
-- {'BufNewFile', '*.sol', 'setlocal filetype=solidity'}
-- },
-- _gemini = {
-- {'BufWinEnter', '.gmi', 'setlocal filetype=markdown'}, {'BufRead', '*.gmi', 'setlocal filetype=markdown'},
-- {'BufNewFile', '*.gmi', 'setlocal filetype=markdown'}
-- },
_markdown = {
{ "FileType", "markdown", "setlocal wrap" },
{ "FileType", "markdown", "setlocal spell" },
},
_buffer_bindings = {
{ "FileType", "floaterm", "nnoremap <silent> <buffer> q :q<CR>" },
},
_auto_resize = {
-- will cause split windows to be resized evenly if main window is resized
{'VimResized ', '*', 'wincmd ='},
},
-- _mode_switching = {
-- -- will switch between absolute and relative line numbers depending on mode
-- {'InsertEnter', '*', 'if &relativenumber | let g:ms_relativenumberoff = 1 | setlocal number norelativenumber | endif'},
-- {'InsertLeave', '*', 'if exists("g:ms_relativenumberoff") | setlocal relativenumber | endif'},
-- {'InsertEnter', '*', 'if &cursorline | let g:ms_cursorlineoff = 1 | setlocal nocursorline | endif'},
-- {'InsertLeave', '*', 'if exists("g:ms_cursorlineoff") | setlocal cursorline | endif'},
-- },
}
return lv_utils
-- TODO find a new home for these autocommands

View file

@ -1,15 +1,15 @@
vim.g.vimtex_compiler_method='latexmk'
vim.g.vimtex_view_method='zathura'
vim.g.vimtex_fold_enabled=0
vim.g.vimtex_compiler_method = "latexmk"
vim.g.vimtex_view_method = "zathura"
vim.g.vimtex_fold_enabled = 0
-- Compile on initialization, cleanup on quit
vim.api.nvim_exec(
[[
[[
augroup vimtex_event_1
au!
au User VimtexEventQuit call vimtex#compiler#clean(0)
au User VimtexEventInitPost call vimtex#compiler#compile()
augroup END
]], false
]],
false
)

View file

@ -1,329 +1,330 @@
-- if not package.loaded['which-key'] then
-- return
-- end
require("which-key").setup {
plugins = {
marks = true, -- shows a list of your marks on ' and `
registers = true, -- shows your registers on " in NORMAL or <C-r> in INSERT mode
-- the presets plugin, adds help for a bunch of default keybindings in Neovim
-- No actual key bindings are created
presets = {
operators = false, -- adds help for operators like d, y, ...
motions = false, -- adds help for motions
text_objects = false, -- help for text objects triggered after entering an operator
windows = true, -- default bindings on <c-w>
nav = true, -- misc bindings to work with windows
z = true, -- bindings for folds, spelling and others prefixed with z
g = true -- bindings for prefixed with g
}
plugins = {
marks = true, -- shows a list of your marks on ' and `
registers = true, -- shows your registers on " in NORMAL or <C-r> in INSERT mode
-- the presets plugin, adds help for a bunch of default keybindings in Neovim
-- No actual key bindings are created
presets = {
operators = false, -- adds help for operators like d, y, ...
motions = false, -- adds help for motions
text_objects = false, -- help for text objects triggered after entering an operator
windows = true, -- default bindings on <c-w>
nav = true, -- misc bindings to work with windows
z = true, -- bindings for folds, spelling and others prefixed with z
g = true, -- bindings for prefixed with g
},
icons = {
breadcrumb = "»", -- symbol used in the command line area that shows your active key combo
separator = "", -- symbol used between a key and it's label
group = "+" -- symbol prepended to a group
},
window = {
border = "single", -- none, single, double, shadow
position = "bottom", -- bottom, top
margin = {1, 0, 1, 0}, -- extra window margin [top, right, bottom, left]
padding = {2, 2, 2, 2} -- extra window padding [top, right, bottom, left]
},
layout = {
height = {min = 4, max = 25}, -- min and max height of the columns
width = {min = 20, max = 50}, -- min and max width of the columns
spacing = 3 -- spacing between columns
},
hidden = {"<silent>", "<cmd>", "<Cmd>", "<CR>", "call", "lua", "^:", "^ "}, -- hide mapping boilerplate
show_help = true -- show help message on the command line when the popup is visible
},
icons = {
breadcrumb = "»", -- symbol used in the command line area that shows your active key combo
separator = "", -- symbol used between a key and it's label
group = "+", -- symbol prepended to a group
},
window = {
border = "single", -- none, single, double, shadow
position = "bottom", -- bottom, top
margin = { 1, 0, 1, 0 }, -- extra window margin [top, right, bottom, left]
padding = { 2, 2, 2, 2 }, -- extra window padding [top, right, bottom, left]
},
layout = {
height = { min = 4, max = 25 }, -- min and max height of the columns
width = { min = 20, max = 50 }, -- min and max width of the columns
spacing = 3, -- spacing between columns
},
hidden = { "<silent>", "<cmd>", "<Cmd>", "<CR>", "call", "lua", "^:", "^ " }, -- hide mapping boilerplate
show_help = true, -- show help message on the command line when the popup is visible
}
-- Set leader
if O.leader_key == ' ' or O.leader_key == 'space' then
vim.api.nvim_set_keymap('n', '<Space>', '<NOP>',
{noremap = true, silent = true})
vim.g.mapleader = ' '
if O.leader_key == " " or O.leader_key == "space" then
vim.api.nvim_set_keymap("n", "<Space>", "<NOP>", { noremap = true, silent = true })
vim.g.mapleader = " "
else
vim.api.nvim_set_keymap('n', O.leader_key, '<NOP>',
{noremap = true, silent = true})
vim.g.mapleader = O.leader_key
vim.api.nvim_set_keymap("n", O.leader_key, "<NOP>", { noremap = true, silent = true })
vim.g.mapleader = O.leader_key
end
local opts = {
mode = "n", -- NORMAL mode
prefix = "<leader>",
buffer = nil, -- Global mappings. Specify a buffer number for buffer local mappings
silent = true, -- use `silent` when creating keymaps
noremap = true, -- use `noremap` when creating keymaps
nowait = false -- use `nowait` when creating keymaps
mode = "n", -- NORMAL mode
prefix = "<leader>",
buffer = nil, -- Global mappings. Specify a buffer number for buffer local mappings
silent = true, -- use `silent` when creating keymaps
noremap = true, -- use `noremap` when creating keymaps
nowait = false, -- use `nowait` when creating keymaps
}
-- no hl
vim.api.nvim_set_keymap('n', '<Leader>h', ':let @/=""<CR>',
{noremap = true, silent = true})
vim.api.nvim_set_keymap("n", "<Leader>h", ':let @/=""<CR>', { noremap = true, silent = true })
-- explorer
-- TODO this introduces some bugs unfortunately
vim.api.nvim_set_keymap('n', '<Leader>e',
":lua require'lv-nvimtree'.toggle_tree()<CR>",
{noremap = true, silent = true})
vim.api.nvim_set_keymap(
"n",
"<Leader>e",
":lua require'lv-nvimtree'.toggle_tree()<CR>",
{ noremap = true, silent = true }
)
-- vim.api.nvim_set_keymap('n', '<Leader>e',
-- ":NvimTreeToggle<CR>",
-- {noremap = true, silent = true})
-- telescope or snap
if O.plugin.snap.active then
vim.api.nvim_set_keymap('n', '<Leader>f', ':Snap find_files<CR>',
{noremap = true, silent = true})
vim.api.nvim_set_keymap("n", "<Leader>f", ":Snap find_files<CR>", { noremap = true, silent = true })
else
vim.api.nvim_set_keymap('n', '<Leader>f', ':Telescope find_files<CR>',
{noremap = true, silent = true})
vim.api.nvim_set_keymap("n", "<Leader>f", ":Telescope find_files<CR>", { noremap = true, silent = true })
end
-- dashboard
vim.api.nvim_set_keymap('n', '<Leader>;', ':Dashboard<CR>',
{noremap = true, silent = true})
vim.api.nvim_set_keymap("n", "<Leader>;", ":Dashboard<CR>", { noremap = true, silent = true })
-- Comments
vim.api.nvim_set_keymap("n", "<leader>/", ":CommentToggle<CR>",
{noremap = true, silent = true})
vim.api.nvim_set_keymap("v", "<leader>/", ":CommentToggle<CR>",
{noremap = true, silent = true})
vim.api.nvim_set_keymap("n", "<leader>/", ":CommentToggle<CR>", { noremap = true, silent = true })
vim.api.nvim_set_keymap("v", "<leader>/", ":CommentToggle<CR>", { noremap = true, silent = true })
-- close buffer
vim.api.nvim_set_keymap("n", "<leader>c", ":BufferClose<CR>",
{noremap = true, silent = true})
vim.api.nvim_set_keymap("n", "<leader>c", ":BufferClose<CR>", { noremap = true, silent = true })
-- TODO create entire treesitter section
local mappings = {
["/"] = "Comment",
["c"] = "Close Buffer",
["e"] = "Explorer",
["f"] = "Find File",
["h"] = "No Highlight",
b = {
name = "Buffers",
j = {"<cmd>BufferPick<cr>", "jump to buffer"},
f = {O.plugin.snap.active and "<cmd>Snap buffers<cr>" or "<cmd>Telescope buffers<cr>", "Find buffer"},
w = {"<cmd>BufferWipeout<cr>", "wipeout buffer"},
e = {
"<cmd>BufferCloseAllButCurrent<cr>", "close all but current buffer"
},
h = {"<cmd>BufferCloseBuffersLeft<cr>", "close all buffers to the left"},
l = {
"<cmd>BufferCloseBuffersRight<cr>",
"close all BufferLines to the right"
},
D = {
"<cmd>BufferOrderByDirectory<cr>",
"sort BufferLines automatically by directory"
},
L = {
"<cmd>BufferOrderByLanguage<cr>",
"sort BufferLines automatically by language"
}
},
-- diagnostics vanilla nvim
-- -- diagnostic
-- function lv_utils.get_all()
-- vim.lsp.diagnostic.get_all()
-- end
-- function lv_utils.get_next()
-- vim.lsp.diagnostic.get_next()
-- end
-- function lv_utils.get_prev()
-- vim.lsp.diagnostic.get_prev()
-- end
-- function lv_utils.goto_next()
-- vim.lsp.diagnostic.goto_next()
-- end
-- function lv_utils.goto_prev()
-- vim.lsp.diagnostic.goto_prev()
-- end
-- function lv_utils.show_line_diagnostics()
-- vim.lsp.diagnostic.show_line_diagnostics()
-- end
-- " Available Debug Adapters:
-- " https://microsoft.github.io/debug-adapter-protocol/implementors/adapters/
-- " Adapter configuration and installation instructions:
-- " https://github.com/mfussenegger/nvim-dap/wiki/Debug-Adapter-installation
-- " Debug Adapter protocol:
-- " https://microsoft.github.io/debug-adapter-protocol/
-- " Debugging
-- command! DebugToggleBreakpoint lua require'dap'.toggle_breakpoint()
-- command! DebugStart lua require'dap'.continue()
-- command! DebugContinue lua require'dap'.continue()
-- command! DebugStepOver lua require'dap'.step_over()
-- command! DebugStepOut lua require'dap'.step_out()
-- command! DebugStepInto lua require'dap'.step_into()
-- command! DebugToggleRepl lua require'dap'.repl.toggle()
-- command! DebugGetSession lua require'dap'.session()
-- D = {
-- name = "Debug",
-- b = {"<cmd>DebugToggleBreakpoint<cr>", "Toggle Breakpoint"},
-- c = {"<cmd>DebugContinue<cr>", "Continue"},
-- i = {"<cmd>DebugStepInto<cr>", "Step Into"},
-- o = {"<cmd>DebugStepOver<cr>", "Step Over"},
-- r = {"<cmd>DebugToggleRepl<cr>", "Toggle Repl"},
-- s = {"<cmd>DebugStart<cr>", "Start"}
-- },
g = {
name = "Git",
j = {"<cmd>lua require 'gitsigns'.next_hunk()<cr>", "Next Hunk"},
k = {"<cmd>lua require 'gitsigns'.prev_hunk()<cr>", "Prev Hunk"},
l = {"<cmd>lua require 'gitsigns'.blame_line()<cr>", "Blame"},
p = {"<cmd>lua require 'gitsigns'.preview_hunk()<cr>", "Preview Hunk"},
r = {"<cmd>lua require 'gitsigns'.reset_hunk()<cr>", "Reset Hunk"},
R = {"<cmd>lua require 'gitsigns'.reset_buffer()<cr>", "Reset Buffer"},
s = {"<cmd>lua require 'gitsigns'.stage_hunk()<cr>", "Stage Hunk"},
u = {
"<cmd>lua require 'gitsigns'.undo_stage_hunk()<cr>",
"Undo Stage Hunk"
},
o = {"<cmd>Telescope git_status<cr>", "Open changed file"},
b = {"<cmd>Telescope git_branches<cr>", "Checkout branch"},
c = {"<cmd>Telescope git_commits<cr>", "Checkout commit"},
C = {
"<cmd>Telescope git_bcommits<cr>",
"Checkout commit(for current file)"
}
["/"] = "Comment",
["c"] = "Close Buffer",
["e"] = "Explorer",
["f"] = "Find File",
["h"] = "No Highlight",
b = {
name = "Buffers",
j = { "<cmd>BufferPick<cr>", "jump to buffer" },
f = { O.plugin.snap.active and "<cmd>Snap buffers<cr>" or "<cmd>Telescope buffers<cr>", "Find buffer" },
w = { "<cmd>BufferWipeout<cr>", "wipeout buffer" },
e = {
"<cmd>BufferCloseAllButCurrent<cr>",
"close all but current buffer",
},
h = { "<cmd>BufferCloseBuffersLeft<cr>", "close all buffers to the left" },
l = {
name = "LSP",
a = {"<cmd>Lspsaga code_action<cr>", "Code Action"},
A = {"<cmd>Lspsaga range_code_action<cr>", "Selected Action"},
d = {
"<cmd>Telescope lsp_document_diagnostics<cr>",
"Document Diagnostics"
},
D = {
"<cmd>Telescope lsp_workspace_diagnostics<cr>",
"Workspace Diagnostics"
},
f = {"<cmd>lua vim.lsp.buf.formatting()<cr>", "Format"},
h = {"<cmd>Lspsaga hover_doc<cr>", "Hover Doc"},
i = {"<cmd>LspInfo<cr>", "Info"},
j = {"<cmd>Lspsaga diagnostic_jump_prev<cr>", "Prev Diagnostic"},
k = {"<cmd>Lspsaga diagnostic_jump_next<cr>", "Next Diagnostic"},
l = {"<cmd>Lspsaga lsp_finder<cr>", "LSP Finder"},
L = {"<cmd>Lspsaga show_line_diagnostics<cr>", "Line Diagnostics"},
p = {"<cmd>Lspsaga preview_definition<cr>", "Preview Definition"},
q = {"<cmd>Telescope quickfix<cr>", "Quickfix"},
r = {"<cmd>Lspsaga rename<cr>", "Rename"},
t = {"<cmd>LspTypeDefinition<cr>", "Type Definition"},
x = {"<cmd>cclose<cr>", "Close Quickfix"},
s = {O.plugin.symbol_outline.active and "<cmd>SymbolsOutline<cr>" or
"<cmd> Telescope lsp_document_symbols<cr>", "Document Symbols"},
S = {
"<cmd>Telescope lsp_dynamic_workspace_symbols<cr>",
"Workspace Symbols"
}
"<cmd>BufferCloseBuffersRight<cr>",
"close all BufferLines to the right",
},
D = {
"<cmd>BufferOrderByDirectory<cr>",
"sort BufferLines automatically by directory",
},
L = {
"<cmd>BufferOrderByLanguage<cr>",
"sort BufferLines automatically by language",
},
},
p = {
name = "Packer",
c = { "<cmd>PackerCompile<cr>", "Compile" },
i = { "<cmd>PackerInstall<cr>", "Install" },
r = { ":luafile %<cr>", "Reload" },
s = { "<cmd>PackerSync<cr>", "Sync" },
u = { "<cmd>PackerUpdate<cr>", "Update" },
},
-- diagnostics vanilla nvim
-- -- diagnostic
-- function lv_utils.get_all()
-- vim.lsp.diagnostic.get_all()
-- end
-- function lv_utils.get_next()
-- vim.lsp.diagnostic.get_next()
-- end
-- function lv_utils.get_prev()
-- vim.lsp.diagnostic.get_prev()
-- end
-- function lv_utils.goto_next()
-- vim.lsp.diagnostic.goto_next()
-- end
-- function lv_utils.goto_prev()
-- vim.lsp.diagnostic.goto_prev()
-- end
-- function lv_utils.show_line_diagnostics()
-- vim.lsp.diagnostic.show_line_diagnostics()
-- end
-- " Available Debug Adapters:
-- " https://microsoft.github.io/debug-adapter-protocol/implementors/adapters/
-- " Adapter configuration and installation instructions:
-- " https://github.com/mfussenegger/nvim-dap/wiki/Debug-Adapter-installation
-- " Debug Adapter protocol:
-- " https://microsoft.github.io/debug-adapter-protocol/
-- " Debugging
d = {
name = "Debug",
t = { "<cmd>lua require'dap'.toggle_breakpoint()<cr>", "Toggle Breakpoint" },
b = { "<cmd>lua require'dap'.step_back()<cr>", "Step Back" },
c = { "<cmd>lua require'dap'.continue()<cr>", "Continue" },
C = { "<cmd>lua require'dap'.run_to_cursor()<cr>", "Run To Cursor" },
d = { "<cmd>lua require'dap'.disconnect()<cr>", "Disconnect" },
g = { "<cmd>lua require'dap'.session()<cr>", "Get Session" },
i = { "<cmd>lua require'dap'.step_into()<cr>", "Step Into" },
o = { "<cmd>lua require'dap'.step_over()<cr>", "Step Over" },
u = { "<cmd>lua require'dap'.step_out()<cr>", "Step Out" },
p = { "<cmd>lua require'dap'.pause.toggle()<cr>", "Pause" },
r = { "<cmd>lua require'dap'.repl.toggle()<cr>", "Toggle Repl" },
s = { "<cmd>lua require'dap'.continue()<cr>", "Start" },
q = { "<cmd>lua require'dap'.stop()<cr>", "Quit" },
},
g = {
name = "Git",
j = { "<cmd>lua require 'gitsigns'.next_hunk()<cr>", "Next Hunk" },
k = { "<cmd>lua require 'gitsigns'.prev_hunk()<cr>", "Prev Hunk" },
l = { "<cmd>lua require 'gitsigns'.blame_line()<cr>", "Blame" },
p = { "<cmd>lua require 'gitsigns'.preview_hunk()<cr>", "Preview Hunk" },
r = { "<cmd>lua require 'gitsigns'.reset_hunk()<cr>", "Reset Hunk" },
R = { "<cmd>lua require 'gitsigns'.reset_buffer()<cr>", "Reset Buffer" },
s = { "<cmd>lua require 'gitsigns'.stage_hunk()<cr>", "Stage Hunk" },
u = {
"<cmd>lua require 'gitsigns'.undo_stage_hunk()<cr>",
"Undo Stage Hunk",
},
o = { "<cmd>Telescope git_status<cr>", "Open changed file" },
b = { "<cmd>Telescope git_branches<cr>", "Checkout branch" },
c = { "<cmd>Telescope git_commits<cr>", "Checkout commit" },
C = {
"<cmd>Telescope git_bcommits<cr>",
"Checkout commit(for current file)",
},
},
l = {
name = "LSP",
a = { "<cmd>lua vim.lsp.buf.code_action()<cr>", "Code Action" },
d = {
"<cmd>Telescope lsp_document_diagnostics<cr>",
"Document Diagnostics",
},
w = {
"<cmd>Telescope lsp_workspace_diagnostics<cr>",
"Workspace Diagnostics",
},
f = { "<cmd>lua vim.lsp.buf.formatting()<cr>", "Format" },
i = { "<cmd>LspInfo<cr>", "Info" },
j = { "<cmd>lua vim.lsp.diagnostic.goto_next({popup_opts = {border = O.lsp.popup_border}})<cr>", "Next Diagnostic" },
k = { "<cmd>lua vim.lsp.diagnostic.goto_prev({popup_opts = {border = O.lsp.popup_border}})<cr>", "Prev Diagnostic" },
q = { "<cmd>Telescope quickfix<cr>", "Quickfix" },
r = { "<cmd>lua vim.lsp.buf.rename()<cr>", "Rename" },
s = {
name = "Search",
b = {"<cmd>Telescope git_branches<cr>", "Checkout branch"},
c = {"<cmd>Telescope colorscheme<cr>", "Colorscheme"},
-- d = {
-- "<cmd>Telescope lsp_document_diagnostics<cr>",
-- "Document Diagnostics"
-- },
-- D = {
-- "<cmd>Telescope lsp_workspace_diagnostics<cr>",
-- "Workspace Diagnostics"
-- },
f = {O.plugin.snap.active and "<cmd>Snap find_files<cr>" or "<cmd>Telescope find_files<cr>", "Find File"},
h = {"<cmd>Telescope help_tags<cr>", "Find Help"},
-- m = {"<cmd>Telescope marks<cr>", "Marks"},
M = {"<cmd>Telescope man_pages<cr>", "Man Pages"},
r = {O.plugin.snap.active and "<cmd>Snap oldfiles<cr>" or "<cmd>Telescope oldfiles<cr>", "Open Recent File"},
R = {"<cmd>Telescope registers<cr>", "Registers"},
t = {O.plugin.snap.active and "<cmd>Snap live_grep<cr>" or "<cmd>Telescope live_grep<cr>", "Text"}
O.plugin.symbol_outline.active and "<cmd>SymbolsOutline<cr>" or "<cmd> Telescope lsp_document_symbols<cr>",
"Document Symbols",
},
S = {
name = "Session",
s = {"<cmd>SessionSave<cr>", "Save Session"},
l = {"<cmd>SessionLoad<cr>", "Load Session"}
"<cmd>Telescope lsp_dynamic_workspace_symbols<cr>",
"Workspace Symbols",
},
T = {
name = "Treesitter",
i = {":TSConfigInfo<cr>", "Info"}
}
},
s = {
name = "Search",
b = { "<cmd>Telescope git_branches<cr>", "Checkout branch" },
c = { "<cmd>Telescope colorscheme<cr>", "Colorscheme" },
-- d = {
-- "<cmd>Telescope lsp_document_diagnostics<cr>",
-- "Document Diagnostics"
-- },
-- D = {
-- "<cmd>Telescope lsp_workspace_diagnostics<cr>",
-- "Workspace Diagnostics"
-- },
f = { O.plugin.snap.active and "<cmd>Snap find_files<cr>" or "<cmd>Telescope find_files<cr>", "Find File" },
h = { "<cmd>Telescope help_tags<cr>", "Find Help" },
-- m = {"<cmd>Telescope marks<cr>", "Marks"},
M = { "<cmd>Telescope man_pages<cr>", "Man Pages" },
r = { O.plugin.snap.active and "<cmd>Snap oldfiles<cr>" or "<cmd>Telescope oldfiles<cr>", "Open Recent File" },
R = { "<cmd>Telescope registers<cr>", "Registers" },
t = { O.plugin.snap.active and "<cmd>Snap live_grep<cr>" or "<cmd>Telescope live_grep<cr>", "Text" },
},
S = {
name = "Session",
s = { "<cmd>SessionSave<cr>", "Save Session" },
l = { "<cmd>SessionLoad<cr>", "Load Session" },
},
T = {
name = "Treesitter",
i = { ":TSConfigInfo<cr>", "Info" },
},
}
if O.plugin.spectre.active then
mappings['r'] = {
name = "Replace",
f = {
"<cmd>lua require('spectre').open_file_search()<cr>", "Current File"
},
p = {"<cmd>lua require('spectre').open()<cr>", "Project"}
}
mappings["r"] = {
name = "Replace",
f = {
"<cmd>lua require('spectre').open_file_search()<cr>",
"Current File",
},
p = { "<cmd>lua require('spectre').open()<cr>", "Project" },
}
end
if O.plugin.trouble.active then
mappings['d'] = {
name = "Diagnostics",
t = {"<cmd>TroubleToggle<cr>", "trouble"},
w = {"<cmd>TroubleToggle lsp_workspace_diagnostics<cr>", "workspace"},
d = {"<cmd>TroubleToggle lsp_document_diagnostics<cr>", "document"},
q = {"<cmd>TroubleToggle quickfix<cr>", "quickfix"},
l = {"<cmd>TroubleToggle loclist<cr>", "loclist"},
r = {"<cmd>TroubleToggle lsp_references<cr>", "references"}
}
end
-- if O.plugin.trouble.active then
-- mappings["d"] = {
-- name = "Diagnostics",
-- t = { "<cmd>TroubleToggle<cr>", "trouble" },
-- w = { "<cmd>TroubleToggle lsp_workspace_diagnostics<cr>", "workspace" },
-- d = { "<cmd>TroubleToggle lsp_document_diagnostics<cr>", "document" },
-- q = { "<cmd>TroubleToggle quickfix<cr>", "quickfix" },
-- l = { "<cmd>TroubleToggle loclist<cr>", "loclist" },
-- r = { "<cmd>TroubleToggle lsp_references<cr>", "references" },
-- }
-- end
if O.plugin.gitlinker.active then mappings["gy"] = "Gitlink" end
if O.plugin.gitlinker.active then
mappings["gy"] = "Gitlink"
end
if O.plugin.ts_playground.active then
vim.api.nvim_set_keymap("n", "<leader>Th",
":TSHighlightCapturesUnderCursor<CR>",
{noremap = true, silent = true})
mappings[""] = "Highlight Capture"
vim.api.nvim_set_keymap("n", "<leader>Th", ":TSHighlightCapturesUnderCursor<CR>", { noremap = true, silent = true })
mappings[""] = "Highlight Capture"
end
if O.plugin.zen.active then
vim.api.nvim_set_keymap("n", "<leader>z", ":ZenMode<CR>",
{noremap = true, silent = true})
mappings["z"] = "Zen"
vim.api.nvim_set_keymap("n", "<leader>z", ":ZenMode<CR>", { noremap = true, silent = true })
mappings["z"] = "Zen"
end
if O.plugin.lazygit.active then
vim.api.nvim_set_keymap("n", "<leader>gg", ":LazyGit<CR>",
{noremap = true, silent = true})
mappings["gg"] = "LazyGit"
vim.api.nvim_set_keymap("n", "<leader>gg", ":LazyGit<CR>", { noremap = true, silent = true })
mappings["gg"] = "LazyGit"
end
if O.plugin.telescope_project.active then
-- open projects
vim.api.nvim_set_keymap('n', '<leader>p',
":lua require'telescope'.extensions.project.project{}<CR>",
{noremap = true, silent = true})
mappings["p"] = "Projects"
-- open projects
vim.api.nvim_set_keymap(
"n",
"<leader>p",
":lua require'telescope'.extensions.project.project{}<CR>",
{ noremap = true, silent = true }
)
mappings["P"] = "Projects"
end
-- [";"] = "Dashboard",
if O.lang.latex.active then
mappings["L"] = {
name = "+Latex",
c = {"<cmd>VimtexCompile<cr>", "Toggle Compilation Mode"},
f = {"<cmd>call vimtex#fzf#run()<cr>", "Fzf Find"},
i = {"<cmd>VimtexInfo<cr>", "Project Information"},
s = {"<cmd>VimtexStop<cr>", "Stop Project Compilation"},
t = {"<cmd>VimtexTocToggle<cr>", "Toggle Table Of Content"},
v = {"<cmd>VimtexView<cr>", "View PDF"}
}
mappings["L"] = {
name = "+Latex",
c = { "<cmd>VimtexCompile<cr>", "Toggle Compilation Mode" },
f = { "<cmd>call vimtex#fzf#run()<cr>", "Fzf Find" },
i = { "<cmd>VimtexInfo<cr>", "Project Information" },
s = { "<cmd>VimtexStop<cr>", "Stop Project Compilation" },
t = { "<cmd>VimtexTocToggle<cr>", "Toggle Table Of Content" },
v = { "<cmd>VimtexView<cr>", "View PDF" },
}
end
if O.lushmode then
mappings["L"] = {
name = "+Lush",
l = {":Lushify<cr>", "Lushify"},
x = {":lua require('lush').export_to_buffer(require('lush_theme.cool_name'))", "Lush Export"},
t = {":LushRunTutorial<cr>", "Lush Tutorial"},
q = {":LushRunQuickstart<cr>", "Lush Quickstart"}
}
mappings["L"] = {
name = "+Lush",
l = { ":Lushify<cr>", "Lushify" },
x = { ":lua require('lush').export_to_buffer(require('lush_theme.cool_name'))", "Lush Export" },
t = { ":LushRunTutorial<cr>", "Lush Tutorial" },
q = { ":LushRunQuickstart<cr>", "Lush Quickstart" },
}
end
local wk = require("which-key")
local wk = require "which-key"
wk.register(mappings, opts)

View file

@ -1,26 +1,26 @@
local M = {}
M.config = function()
require("zen-mode").setup {
window = {
backdrop = 1,
height = .85, -- height of the Zen window
options = {
signcolumn = "no", -- disable signcolumn
number = false, -- disable number column
relativenumber = false -- disable relative numbers
-- cursorline = false, -- disable cursorline
-- cursorcolumn = false, -- disable cursor column
-- foldcolumn = "0", -- disable fold column
-- list = false, -- disable whitespace characters
}
},
plugins = {
gitsigns = {enabled = false} -- disables git signs
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
}
}
require("zen-mode").setup {
window = {
backdrop = 1,
height = 0.85, -- height of the Zen window
options = {
signcolumn = "no", -- disable signcolumn
number = false, -- disable number column
relativenumber = false, -- disable relative numbers
-- cursorline = false, -- disable cursorline
-- cursorcolumn = false, -- disable cursor column
-- foldcolumn = "0", -- disable fold column
-- list = false, -- disable whitespace characters
},
},
plugins = {
gitsigns = { enabled = false }, -- disables git signs
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
},
}
end
return M

View file

@ -1,426 +1,485 @@
local execute = vim.api.nvim_command
local fn = vim.fn
local install_path = fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim"
local install_path = fn.stdpath "data" .. "/site/pack/packer/start/packer.nvim"
if fn.empty(fn.glob(install_path)) > 0 then
execute("!git clone https://github.com/wbthomason/packer.nvim " ..
install_path)
execute "packadd packer.nvim"
execute("!git clone https://github.com/wbthomason/packer.nvim " .. install_path)
execute "packadd packer.nvim"
end
local packer_ok, packer = pcall(require, "packer")
if not packer_ok then return end
if not packer_ok then
return
end
packer.init {
-- compile_path = vim.fn.stdpath('data')..'/site/pack/loader/start/packer.nvim/plugin/packer_compiled.vim',
compile_path = require("packer.util").join_paths(vim.fn.stdpath('config'),
'plugin',
'packer_compiled.vim'),
git = {clone_timeout = 300},
display = {
open_fn = function()
return require("packer.util").float {border = "single"}
end
}
-- compile_path = vim.fn.stdpath('data')..'/site/pack/loader/start/packer.nvim/plugin/packer_compiled.vim',
compile_path = require("packer.util").join_paths(vim.fn.stdpath "config", "plugin", "packer_compiled.vim"),
git = { clone_timeout = 300 },
display = {
open_fn = function()
return require("packer.util").float { border = "single" }
end,
},
}
vim.cmd "autocmd BufWritePost plugins.lua PackerCompile" -- Auto compile when there are changes in plugins.lua
vim.cmd "autocmd BufWritePost plugins.lua PackerCompile"
return require("packer").startup(function(use)
-- Packer can manage itself as an optional plugin
use "wbthomason/packer.nvim"
-- Packer can manage itself as an optional plugin
use "wbthomason/packer.nvim"
-- TODO refactor all of this (for now it works, but yes I know it could be wrapped in a simpler function)
use {"neovim/nvim-lspconfig"}
use {"glepnir/lspsaga.nvim"}
use {"kabouzeid/nvim-lspinstall"}
-- Telescope
use {"nvim-lua/popup.nvim"}
use {"nvim-lua/plenary.nvim"}
use {"tjdevries/astronauta.nvim"}
use {
"nvim-telescope/telescope.nvim",
config = [[require('lv-telescope')]],
cmd = "Telescope"
}
-- Snap TODO disable for now, need to only install fzy when user specifies they want to use snap
-- use {
-- "camspiers/snap",
-- rocks = "fzy",
-- config = function()
-- require("lv-snap").config()
-- end,
-- disable = not O.plugin.snap.active
-- }
-- Autocomplete
use {
"hrsh7th/nvim-compe",
config = function()
require("lv-compe").config()
end
}
-- TODO refactor all of this (for now it works, but yes I know it could be wrapped in a simpler function)
use { "neovim/nvim-lspconfig" }
use { "kabouzeid/nvim-lspinstall" }
-- Telescope
use { "nvim-lua/popup.nvim" }
use { "nvim-lua/plenary.nvim" }
use { "tjdevries/astronauta.nvim" }
use {
"nvim-telescope/telescope.nvim",
config = [[require('lv-telescope')]],
cmd = "Telescope",
}
-- Snap TODO disable for now, need to only install fzy when user specifies they want to use snap
-- use {
-- "camspiers/snap",
-- rocks = "fzy",
-- config = function()
-- require("lv-snap").config()
-- end,
-- disable = not O.plugin.snap.active
-- }
-- Autocomplete
use {
"hrsh7th/nvim-compe",
event = "InsertEnter",
config = function()
require("lv-compe").config()
end,
}
use {"hrsh7th/vim-vsnip", event = "InsertEnter"}
use {"rafamadriz/friendly-snippets", event = "InsertEnter"}
use { "hrsh7th/vim-vsnip", event = "InsertEnter" }
use { "rafamadriz/friendly-snippets", event = "InsertEnter" }
-- Treesitter
use {"nvim-treesitter/nvim-treesitter", run = ":TSUpdate"}
-- Treesitter
use { "nvim-treesitter/nvim-treesitter", run = ":TSUpdate" }
use {
"kyazdani42/nvim-tree.lua",
-- cmd = "NvimTreeToggle",
config = function()
require("lv-nvimtree").config()
end
}
-- Neoformat
use { "sbdchd/neoformat", event = "BufEnter" }
use {
"lewis6991/gitsigns.nvim",
use {
"kyazdani42/nvim-tree.lua",
-- cmd = "NvimTreeToggle",
config = function()
require("lv-nvimtree").config()
end,
}
config = function()
require("lv-gitsigns").config()
end,
event = "BufRead"
}
use {
"lewis6991/gitsigns.nvim",
-- whichkey
use {"folke/which-key.nvim"}
config = function()
require("lv-gitsigns").config()
end,
event = "BufRead",
}
-- Autopairs
use {
"windwp/nvim-autopairs",
config = function()
require 'lv-autopairs'
end
}
-- whichkey
use { "folke/which-key.nvim" }
-- Comments
use {
"terrortylor/nvim-comment",
cmd = "CommentToggle",
config = function()
require('nvim_comment').setup()
end
}
-- Autopairs
use {
"windwp/nvim-autopairs",
event = "InsertEnter",
after = { "telescope.nvim", "nvim-compe" },
config = function()
require "lv-autopairs"
end,
}
-- Color
use {"christianchiarulli/nvcode-color-schemes.vim", opt = true}
-- Comments
use {
"terrortylor/nvim-comment",
cmd = "CommentToggle",
config = function()
require("nvim_comment").setup()
end,
}
-- Icons
use {"kyazdani42/nvim-web-devicons"}
-- Color
use { "christianchiarulli/nvcode-color-schemes.vim", opt = true }
-- Status Line and Bufferline
use {"glepnir/galaxyline.nvim"}
-- Icons
use { "kyazdani42/nvim-web-devicons" }
use {
"akinsho/nvim-bufferline.lua",
config = function()
require("lv-bufferline").config()
end,
event = "BufRead"
-- Status Line and Bufferline
use { "glepnir/galaxyline.nvim" }
}
use {
"romgrk/barbar.nvim",
config = function()
vim.api.nvim_set_keymap("n", "<TAB>", ":BufferNext<CR>", { noremap = true, silent = true })
vim.api.nvim_set_keymap("n", "<S-TAB>", ":BufferPrevious<CR>", { noremap = true, silent = true })
vim.api.nvim_set_keymap("n", "<S-x>", ":BufferClose<CR>", { noremap = true, silent = true })
end,
-- event = "BufRead",
}
-- Extras, these do not load by default
-- use {
-- "akinsho/nvim-bufferline.lua",
-- config = function() require("lv-bufferline").config() end,
-- event = "BufRead"
-- }
-- Better motions
use {
'phaazon/hop.nvim',
event = 'BufRead',
config = function()
require('lv-hop').config()
end,
disable = not O.plugin.hop.active,
opt = true
}
-- Enhanced increment/decrement
use {
'monaqa/dial.nvim',
event = 'BufRead',
config = function()
require('lv-dial').config()
end,
disable = not O.plugin.dial.active,
opt = true
}
-- Dashboard
use {
"ChristianChiarulli/dashboard-nvim",
event = 'BufWinEnter',
cmd = {"Dashboard", "DashboardNewFile", "DashboardJumpMarks"},
config = function()
require('lv-dashboard').config()
end,
disable = not O.plugin.dashboard.active,
opt = true
}
-- Zen Mode
use {
"folke/zen-mode.nvim",
cmd = "ZenMode",
-- event = "BufRead",
config = function()
require('lv-zen').config()
end,
disable = not O.plugin.zen.active
}
-- Ranger
use {
"kevinhwang91/rnvimr",
cmd = "Rnvimr",
config = function()
require('lv-rnvimr').config()
end,
disable = not O.plugin.ranger.active
}
-- Extras, these do not load by default
-- matchup
use {
'andymass/vim-matchup',
event = "CursorMoved",
config = function()
require('lv-matchup').config()
end,
disable = not O.plugin.matchup.active
}
-- Better motions
use {
"phaazon/hop.nvim",
event = "BufRead",
config = function()
require("lv-hop").config()
end,
disable = not O.plugin.hop.active,
opt = true,
}
-- Enhanced increment/decrement
use {
"monaqa/dial.nvim",
event = "BufRead",
config = function()
require("lv-dial").config()
end,
disable = not O.plugin.dial.active,
opt = true,
}
-- Dashboard
use {
"ChristianChiarulli/dashboard-nvim",
event = "BufWinEnter",
cmd = { "Dashboard", "DashboardNewFile", "DashboardJumpMarks" },
config = function()
require("lv-dashboard").config()
end,
disable = not O.plugin.dashboard.active,
opt = true,
}
-- Zen Mode
use {
"folke/zen-mode.nvim",
cmd = "ZenMode",
-- event = "BufRead",
config = function()
require("lv-zen").config()
end,
disable = not O.plugin.zen.active,
}
-- Ranger
use {
"kevinhwang91/rnvimr",
cmd = "Rnvimr",
config = function()
require("lv-rnvimr").config()
end,
disable = not O.plugin.ranger.active,
}
use {
"norcalli/nvim-colorizer.lua",
event = "BufRead",
config = function()
require("colorizer").setup()
vim.cmd("ColorizerReloadAllBuffers")
end,
disable = not O.plugin.colorizer.active
}
-- matchup
use {
"andymass/vim-matchup",
event = "CursorMoved",
config = function()
require("lv-matchup").config()
end,
disable = not O.plugin.matchup.active,
}
use {
"nacro90/numb.nvim",
event = "BufRead",
config = function()
require('numb').setup {
show_numbers = true, -- Enable 'number' for the window while peeking
show_cursorline = true -- Enable 'cursorline' for the window while peeking
}
end,
disable = not O.plugin.numb.active
}
use {
"norcalli/nvim-colorizer.lua",
event = "BufRead",
config = function()
require("colorizer").setup()
vim.cmd "ColorizerReloadAllBuffers"
end,
disable = not O.plugin.colorizer.active,
}
-- Treesitter playground
use {
'nvim-treesitter/playground',
event = "BufRead",
disable = not O.plugin.ts_playground.active
}
use {
"nacro90/numb.nvim",
event = "BufRead",
config = function()
require("numb").setup {
show_numbers = true, -- Enable 'number' for the window while peeking
show_cursorline = true, -- Enable 'cursorline' for the window while peeking
}
end,
disable = not O.plugin.numb.active,
}
use {
"lukas-reineke/indent-blankline.nvim",
event = "BufRead",
setup = function()
-- Treesitter playground
use {
"nvim-treesitter/playground",
event = "BufRead",
disable = not O.plugin.ts_playground.active,
}
vim.g.indentLine_enabled = 1
vim.g.indent_blankline_char = ""
use {
"lukas-reineke/indent-blankline.nvim",
event = "BufRead",
setup = function()
vim.g.indentLine_enabled = 1
vim.g.indent_blankline_char = ""
vim.g.indent_blankline_filetype_exclude = {
"help", "terminal", "dashboard"
}
vim.g.indent_blankline_buftype_exclude = {"terminal"}
vim.g.indent_blankline_filetype_exclude = {
"help",
"terminal",
"dashboard",
}
vim.g.indent_blankline_buftype_exclude = { "terminal" }
vim.g.indent_blankline_show_trailing_blankline_indent = false
vim.g.indent_blankline_show_first_indent_level = true
end,
disable = not O.plugin.indent_line.active
}
vim.g.indent_blankline_show_trailing_blankline_indent = false
vim.g.indent_blankline_show_first_indent_level = true
end,
disable = not O.plugin.indent_line.active,
}
-- comments in context
use {
'JoosepAlviste/nvim-ts-context-commentstring',
event = "BufRead",
disable = not O.plugin.ts_context_commentstring.active
}
-- comments in context
use {
"JoosepAlviste/nvim-ts-context-commentstring",
event = "BufRead",
disable = not O.plugin.ts_context_commentstring.active,
}
-- Symbol Outline
use {
'simrat39/symbols-outline.nvim',
cmd = 'SymbolsOutline',
disable = not O.plugin.symbol_outline.active
}
-- diagnostics
use {
"folke/trouble.nvim",
cmd = 'TroubleToggle',
disable = not O.plugin.trouble.active
}
-- Debugging
use {
"mfussenegger/nvim-dap",
event = "BufRead",
disable = not O.plugin.debug.active
}
-- Better quickfix
use {
"kevinhwang91/nvim-bqf",
event = "BufRead",
disable = not O.plugin.bqf.active
}
-- Floating terminal
use {
'numToStr/FTerm.nvim',
event = "BufRead",
config = function()
require'FTerm'.setup({
dimensions = {height = 0.8, width = 0.8, x = 0.5, y = 0.5},
border = 'single' -- or 'double'
})
end,
disable = not O.plugin.floatterm.active
}
-- Search & Replace
use {
'windwp/nvim-spectre',
event = "BufRead",
config = function()
require('spectre').setup()
end,
disable = not O.plugin.spectre.active
}
-- lsp root with this nvim-tree will follow you
use {
"ahmedkhalf/lsp-rooter.nvim",
event = "BufRead",
config = function()
require("lsp-rooter").setup()
end,
disable = not O.plugin.lsp_rooter.active
}
-- Markdown preview
use {
'iamcco/markdown-preview.nvim',
run = 'cd app && npm install',
ft = 'markdown',
disable = not O.plugin.markdown_preview.active
}
-- Interactive scratchpad
use {
'metakirby5/codi.vim',
cmd = 'Codi',
disable = not O.plugin.codi.active
}
-- Use fzy for telescope
use {
"nvim-telescope/telescope-fzy-native.nvim",
event = "BufRead",
disable = not O.plugin.telescope_fzy.active
}
-- Use project for telescope
use {
"nvim-telescope/telescope-project.nvim",
event = "BufRead",
after = "telescope.nvim",
disable = not O.plugin.telescope_project.active
}
-- Sane gx for netrw_gx bug
use {
"felipec/vim-sanegx",
event = "BufRead",
disable = not O.plugin.sanegx.active
}
-- Sane gx for netrw_gx bug
use {
"folke/todo-comments.nvim",
event = "BufRead",
disable = not O.plugin.todo_comments.active
}
-- LSP Colors
use {
"folke/lsp-colors.nvim",
event = "BufRead",
disable = not O.plugin.lsp_colors.active
}
-- Git Blame
use {
"f-person/git-blame.nvim",
event = "BufRead",
disable = not O.plugin.git_blame.active
}
use {
'ruifm/gitlinker.nvim',
event = "BufRead",
config = function()
require"gitlinker".setup({
opts = {
-- remote = 'github', -- force the use of a specific remote
-- adds current line nr in the url for normal mode
add_current_line_on_normal_mode = true,
-- callback for what to do with the url
action_callback = require"gitlinker.actions".open_in_browser,
-- print the url after performing the action
print_url = false,
-- mapping to call url generation
mappings = "<leader>gy"
}
})
-- Symbol Outline
use {
"simrat39/symbols-outline.nvim",
cmd = "SymbolsOutline",
disable = not O.plugin.symbol_outline.active,
}
-- diagnostics
use {
"folke/trouble.nvim",
cmd = "TroubleToggle",
disable = not O.plugin.trouble.active,
}
-- Debugging
use {
"mfussenegger/nvim-dap",
config = function()
require "dap"
vim.fn.sign_define("DapBreakpoint", {
text = "",
texthl = "LspDiagnosticsSignError",
linehl = "",
numhl = "",
})
require("dap").defaults.fallback.terminal_win_cmd = "50vsplit new"
end,
disable = not O.plugin.debug.active,
}
-- Better quickfix
use {
"kevinhwang91/nvim-bqf",
event = "BufRead",
disable = not O.plugin.bqf.active,
}
-- Floating terminal
use {
"numToStr/FTerm.nvim",
event = "BufRead",
config = function()
require("FTerm").setup {
dimensions = { height = 0.8, width = 0.8, x = 0.5, y = 0.5 },
border = "single", -- or 'double'
}
end,
disable = not O.plugin.floatterm.active,
}
-- Search & Replace
use {
"windwp/nvim-spectre",
event = "BufRead",
config = function()
require("spectre").setup()
end,
disable = not O.plugin.spectre.active,
}
-- lsp root with this nvim-tree will follow you
use {
"ahmedkhalf/lsp-rooter.nvim",
event = "BufRead",
config = function()
require("lsp-rooter").setup()
end,
disable = not O.plugin.lsp_rooter.active,
}
-- Markdown preview
use {
"iamcco/markdown-preview.nvim",
run = "cd app && npm install",
ft = "markdown",
disable = not O.plugin.markdown_preview.active,
}
-- Interactive scratchpad
use {
"metakirby5/codi.vim",
cmd = "Codi",
disable = not O.plugin.codi.active,
}
-- Use fzy for telescope
use {
"nvim-telescope/telescope-fzy-native.nvim",
event = "BufRead",
disable = not O.plugin.telescope_fzy.active,
}
-- Use project for telescope
use {
"nvim-telescope/telescope-project.nvim",
event = "BufRead",
after = "telescope.nvim",
disable = not O.plugin.telescope_project.active,
}
-- Sane gx for netrw_gx bug
use {
"felipec/vim-sanegx",
event = "BufRead",
disable = not O.plugin.sanegx.active,
}
-- Sane gx for netrw_gx bug
use {
"folke/todo-comments.nvim",
event = "BufRead",
disable = not O.plugin.todo_comments.active,
}
-- LSP Colors
use {
"folke/lsp-colors.nvim",
event = "BufRead",
disable = not O.plugin.lsp_colors.active,
}
-- Git Blame
use {
"f-person/git-blame.nvim",
event = "BufRead",
disable = not O.plugin.git_blame.active,
}
use {
"ruifm/gitlinker.nvim",
event = "BufRead",
config = function()
require("gitlinker").setup {
opts = {
-- remote = 'github', -- force the use of a specific remote
-- adds current line nr in the url for normal mode
add_current_line_on_normal_mode = true,
-- callback for what to do with the url
action_callback = require("gitlinker.actions").open_in_browser,
-- print the url after performing the action
print_url = false,
-- mapping to call url generation
mappings = "<leader>gy",
},
}
end,
disable = not O.plugin.gitlinker.active,
requires = "nvim-lua/plenary.nvim",
}
-- Lazygit
use {
"kdheepak/lazygit.nvim",
cmd = "LazyGit",
disable = not O.plugin.lazygit.active,
}
-- Octo
use {
"pwntester/octo.nvim",
event = "BufRead",
disable = not O.plugin.octo.active,
}
-- Diffview
use {
"sindrets/diffview.nvim",
event = "BufRead",
disable = not O.plugin.diffview.active,
}
-- Easily Create Gists
use {
"mattn/vim-gist",
event = "BufRead",
disable = not O.plugin.gist.active,
requires = "mattn/webapi-vim",
}
-- Lush Create Color Schemes
use {
"rktjmp/lush.nvim",
-- cmd = {"LushRunQuickstart", "LushRunTutorial", "Lushify"},
disable = not O.plugin.lush.active,
}
-- HTML preview
use {
"turbio/bracey.vim",
event = "BufRead",
run = "npm install --prefix server",
disable = not O.plugin.bracey.active,
}
-- Debugger management
use {
"Pocco81/DAPInstall.nvim",
-- event = "BufRead",
disable = not O.plugin.dap_install.active,
}
end,
disable = not O.plugin.gitlinker.active,
requires = 'nvim-lua/plenary.nvim'
-- LANGUAGE SPECIFIC GOES HERE
}
-- Lazygit
use {
"kdheepak/lazygit.nvim",
cmd = "LazyGit",
disable = not O.plugin.lazygit.active
}
-- Octo
use {
"pwntester/octo.nvim",
event = "BufRead",
disable = not O.plugin.octo.active
}
-- Diffview
use {
"sindrets/diffview.nvim",
event = "BufRead",
disable = not O.plugin.diffview.active
}
-- Easily Create Gists
use {
"mattn/vim-gist",
event = "BufRead",
disable = not O.plugin.gist.active,
requires = 'mattn/webapi-vim'
}
-- Lush Create Color Schemes
use {
"rktjmp/lush.nvim",
-- cmd = {"LushRunQuickstart", "LushRunTutorial", "Lushify"},
disable = not O.plugin.lush.active
}
-- HTML preview
use {
'turbio/bracey.vim',
event = "BufRead",
run = 'npm install --prefix server',
disable = not O.plugin.bracey.active
}
-- Debugger management
use {
'Pocco81/DAPInstall.nvim',
event = "BufRead",
disable = not O.plugin.dap_install.active
}
use { "lervag/vimtex", ft = "tex" }
-- LANGUAGE SPECIFIC GOES HERE
-- Rust tools
-- TODO: use lazy loading maybe?
use {
"simrat39/rust-tools.nvim",
disable = not O.lang.rust.rust_tools.active,
}
-- Latex TODO what filetypes should this be active for?
use {"lervag/vimtex", ft = "latex"}
-- Elixir
use { "elixir-editors/vim-elixir", ft = { "elixir", "eelixir", "euphoria3" } }
-- Rust tools
-- TODO: use lazy loading maybe?
use {"simrat39/rust-tools.nvim", ft = "rust"}
-- Javascript / Typescript
use {
"jose-elias-alvarez/nvim-lsp-ts-utils",
ft = {
"javascript",
"javascriptreact",
"javascript.jsx",
"typescript",
"typescriptreact",
"typescript.tsx",
},
}
-- use {
-- "jose-elias-alvarez/null-ls.nvim",
-- ft = {
-- "javascript",
-- "javascriptreact",
-- "javascript.jsx",
-- "typescript",
-- "typescriptreact",
-- "typescript.tsx",
-- },
-- config = function()
-- require("null-ls").setup()
-- end,
-- }
-- Elixir
use {"elixir-editors/vim-elixir", ft = {"elixir", "eelixir", "euphoria3"}}
-- Tabnine
use {
"tzachar/compe-tabnine",
run = "./install.sh",
requires = "hrsh7th/nvim-compe",
disable = not O.plugin.tabnine.active,
}
for _, plugin in pairs(O.custom_plugins) do
packer.use(plugin)
end
end)

View file

@ -1,60 +1,60 @@
--- HELPERS ---
local cmd = vim.cmd
local opt = vim.opt
--- VIM ONLY COMMANDS ---
cmd('filetype plugin on') -- filetype detection
cmd('let &titleold="'..TERMINAL..'"')
cmd('set inccommand=split') -- show what you are substituting in real time
cmd('set iskeyword+=-') -- treat dash as a separate word
cmd('set whichwrap+=<,>,[,],h,l') -- move to next line with theses keys
cmd "filetype plugin on"
cmd('let &titleold="' .. TERMINAL .. '"')
cmd "set inccommand=split"
cmd "set iskeyword+=-"
cmd "set whichwrap+=<,>,[,],h,l"
if O.transparent_window then
cmd('au ColorScheme * hi Normal ctermbg=none guibg=none')
end
cmd "au ColorScheme * hi Normal ctermbg=none guibg=none"
cmd "au ColorScheme * hi SignColumn ctermbg=none guibg=none"
end
--- COLORSCHEME ---
vim.g.colors_name = O.colorscheme
--- SETTINGS ---
opt.backup = false -- creates a backup file
opt.clipboard = "unnamedplus" -- allows neovim to access the system clipboard
opt.cmdheight = 2 -- more space in the neovim command line for displaying messages
opt.colorcolumn = "99999" -- fix indentline for now
opt.completeopt = {'menuone', 'noselect'}
opt.conceallevel = 0 -- so that `` is visible in markdown files
opt.fileencoding = "utf-8" -- the encoding written to a file
opt.guifont = "monospace:h17" -- the font used in graphical neovim applications
opt.hidden = O.hidden_files -- required to keep multiple buffers and open multiple buffers
opt.hlsearch = O.hl_search -- highlight all matches on previous search pattern
opt.ignorecase = O.ignore_case -- ignore case in search patterns
opt.mouse = "a" -- allow the mouse to be used in neovim
opt.pumheight = 10 -- pop up menu height
opt.showmode = false -- we don't need to see things like -- INSERT -- anymore
opt.showtabline = 2 -- always show tabs
opt.smartcase = O.smart_case -- smart case
opt.smartindent = true -- make indenting smarter again
opt.splitbelow = true -- force all horizontal splits to go below current window
opt.splitright = true -- force all vertical splits to go to the right of current window
opt.swapfile = false -- creates a swapfile
opt.termguicolors = true -- set term gui colors (most terminals support this)
opt.timeoutlen = O.timeoutlen -- time to wait for a mapped sequence to complete (in milliseconds)
opt.title = true -- set the title of window to the value of the titlestring
opt.titlestring = "%<%F%=%l/%L - nvim" -- what the title of the window will be set to
opt.undodir = CACHE_PATH .. '/undo' -- set an undo directory
opt.undofile = true -- enable persisten undo
opt.updatetime = 300 -- faster completion
opt.writebackup = false -- if a file is being edited by another program (or was written to file while editing with another program), it is not allowed to be edited
opt.expandtab = true -- convert tabs to spaces
opt.shiftwidth = 4 -- the number of spaces inserted for each indentation
opt.shortmess:append("c") -- don't pass messages to |ins-completion-menu|
opt.tabstop = 4 -- insert 4 spaces for a tab
opt.cursorline = O.cursorline -- highlight the current line
opt.number = O.number -- set numbered lines
opt.relativenumber = O.relative_number -- set relative numbered lines
opt.signcolumn = "yes" -- always show the sign column, otherwise it would shift the text each time
opt.wrap = O.wrap_lines -- display lines as one long line
opt.backup = false -- creates a backup file
opt.clipboard = "unnamedplus" -- allows neovim to access the system clipboard
opt.cmdheight = 2 -- more space in the neovim command line for displaying messages
opt.colorcolumn = "99999" -- fix indentline for now
opt.completeopt = { "menuone", "noselect" }
opt.conceallevel = 0 -- so that `` is visible in markdown files
opt.fileencoding = "utf-8" -- the encoding written to a file
opt.guifont = "monospace:h17" -- the font used in graphical neovim applications
opt.hidden = O.hidden_files -- required to keep multiple buffers and open multiple buffers
opt.hlsearch = O.hl_search -- highlight all matches on previous search pattern
opt.ignorecase = O.ignore_case -- ignore case in search patterns
opt.mouse = "a" -- allow the mouse to be used in neovim
opt.pumheight = 10 -- pop up menu height
opt.showmode = false -- we don't need to see things like -- INSERT -- anymore
opt.showtabline = 2 -- always show tabs
opt.smartcase = O.smart_case -- smart case
opt.smartindent = true -- make indenting smarter again
opt.splitbelow = true -- force all horizontal splits to go below current window
opt.splitright = true -- force all vertical splits to go to the right of current window
opt.swapfile = false -- creates a swapfile
opt.termguicolors = true -- set term gui colors (most terminals support this)
opt.timeoutlen = O.timeoutlen -- time to wait for a mapped sequence to complete (in milliseconds)
opt.title = true -- set the title of window to the value of the titlestring
opt.titlestring = "%<%F%=%l/%L - nvim" -- what the title of the window will be set to
opt.undodir = CACHE_PATH .. "/undo" -- set an undo directory
opt.undofile = true -- enable persisten undo
opt.updatetime = 300 -- faster completion
opt.writebackup = false -- if a file is being edited by another program (or was written to file while editing with another program), it is not allowed to be edited
opt.expandtab = true -- convert tabs to spaces
opt.shiftwidth = 4 -- the number of spaces inserted for each indentation
opt.shortmess:append "c"
opt.tabstop = 4 -- insert 4 spaces for a tab
opt.cursorline = O.cursorline -- highlight the current line
opt.number = O.number -- set numbered lines
opt.relativenumber = O.relative_number -- set relative numbered lines
opt.signcolumn = "yes" -- always show the sign column, otherwise it would shift the text each time
opt.wrap = O.wrap_lines -- display lines as one long line

6
utils/.stylua.toml Normal file
View file

@ -0,0 +1,6 @@
column_width = 120
line_endings = "Unix"
indent_type = "Spaces"
indent_width = 2
quote_style = "AutoPreferDouble"
no_call_parentheses = true

View file

@ -1,26 +1,27 @@
--[[
O is the global options object
Formatters and linters should be
Linters should be
filled in as strings with either
a global executable or a path to
an executable
]] -- THESE ARE EXAMPLE CONFIGS FEEL FREE TO CHANGE TO WHATEVER YOU WANT
-- general
O.format_on_save = true
O.auto_complete = true
O.colorscheme = 'spacegray'
O.colorscheme = "spacegray"
O.auto_close_tree = 0
O.wrap_lines = false
O.timeoutlen = 100
O.document_highlight = true
O.extras = false
O.leader_key = ' '
O.leader_key = " "
O.ignore_case = true
O.smart_case = true
O.lushmode = false
O.transparent_window = false
-- After changing plugin config it is recommended to run :PackerCompile
-- TODO User Config for predefined plugins
-- After changing plugin config exit and reopen LunarVim, Run :PackerInstall :PackerCompile
O.plugin.hop.active = false
O.plugin.dial.active = false
O.plugin.dashboard.active = true
@ -46,13 +47,9 @@ O.lang.clang.diagnostics.signs = true
O.lang.clang.diagnostics.underline = true
-- python
-- add things like O.python.formatter.yapf.exec_path
-- add things like O.python.linter.flake8.exec_path
-- add things like O.python.formatter.isort.exec_path
O.lang.python.formatter = 'yapf'
-- O.python.linter = 'flake8'
O.lang.python.isort = true
O.lang.python.autoformat = true
O.lang.python.diagnostics.virtual_text = true
O.lang.python.diagnostics.signs = true
O.lang.python.diagnostics.underline = true
@ -60,58 +57,18 @@ O.lang.python.analysis.type_checking = "off"
O.lang.python.analysis.auto_search_paths = true
O.lang.python.analysis.use_library_code_types = true
-- lua
-- TODO look into stylua
O.lang.lua.formatter = 'lua-format'
-- O.lua.formatter = 'lua-format'
O.lang.lua.autoformat = false
-- javascript
O.lang.tsserver.formatter = 'prettier'
O.lang.tsserver.linter = nil
O.lang.tsserver.autoformat = true
-- json
O.lang.json.autoformat = true
-- php
O.lang.php.environment.php_version = "7.4"
O.lang.php.diagnostics.signs = true
O.lang.php.diagnostics.underline = true
O.lang.php.filetypes = {"php", "phtml"}
-- ruby
O.lang.ruby.autoformat = true
-- Autocommands (https://neovim.io/doc/user/autocmd.html)
-- O.user_autocommands = {{ "BufWinEnter", "*", "echo \"hi again\""}}
-- go
O.lang.go.autoformat = true
-- rust
O.lang.rust.autoformat = true
-- clang
O.lang.clang.autoformat = false -- Set to true to enable auto-format in C/C++ files.
-- create custom autocommand field (This would be easy with lua)
-- Turn off relative_numbers
-- O.relative_number = false
-- Turn off cursorline
-- O.cursorline = false
-- Neovim turns the default cursor to 'Block'
-- when switched back into terminal.
-- This below line fixes that. Uncomment if needed.
-- vim.cmd('autocmd VimLeave,VimSuspend * set guicursor=a:ver90') -- Beam
-- vim.cmd('autocmd VimLeave,VimSuspend * set guicursor=a:hor20') -- Underline
-- NOTE: Above code doesn't take a value from the terminal's cursor and
-- replace it. It hardcodes the cursor shape.
-- And I think `ver` means vertical and `hor` means horizontal.
-- The numbers didn't make a difference in alacritty. Please change
-- the number to something that suits your needs if it looks weird.
-- TODO
-- custom autocommands
-- user defined plugin config
-- custom settings
-- Additional Plugins
-- O.custom_plugins = {{"windwp/nvim-ts-autotag"}}

View file

@ -42,7 +42,7 @@
--
-- `:lua require('lush').ify()`
local lush = require('lush')
local lush = require "lush"
local hsl = lush.hsl
local theme = lush(function()
@ -101,7 +101,7 @@ local theme = lush(function()
-- QuickFixLine { }, -- Current |quickfix| item in the quickfix window. Combined with |hl-CursorLine| when the cursor is there.
-- Search { }, -- Last search pattern highlighting (see 'hlsearch'). Also used for similar items that need to stand out.
-- SpecialKey { }, -- Unprintable characters: text displayed differently from what it really is. But not 'listchars' whitespace. |hl-Whitespace|
-- SpellBad { }, -- Word that is not recognized by the spellchecker. |spell| Combined with the highlighting used otherwise.
-- SpellBad { }, -- Word that is not recognized by the spellchecker. |spell| Combined with the highlighting used otherwise.
-- SpellCap { }, -- Word that should start with a capital. |spell| Combined with the highlighting used otherwise.
-- SpellLocal { }, -- Word that is recognized by the spellchecker as one that is used in another region. |spell| Combined with the highlighting used otherwise.
-- SpellRare { }, -- Word that is recognized by the spellchecker as one that is hardly ever used. |spell| Combined with the highlighting used otherwise.
@ -260,7 +260,6 @@ local theme = lush(function()
-- TSTitle { }; -- Text that is part of a title.
-- TSLiteral { }; -- Literal text.
-- TSURI { }; -- Any URI like a link or email.
}
end)