--- /dev/null
+= nvim configuration files
+Yes most of this is just from _The Primeagen's_ config. I had a custom vim
+config before neovim and knew I had to update to neovim and lsp.
+
+== Links
+- https://www.youtube.com/watch?v=EOWPb7Id1d4&t=354s[Developing in Windows]
+- https://www.youtube.com/watch?v=w7i4amO_zaE&t=908s[The Primeagen]
--- /dev/null
+snippet #meta
+###########################################################
+# author: Austin Larsen
+#
+# synopsis: $1
+#
+# date: ${2:`date`}
+###########################################################
+endsnippet
--- /dev/null
+snippet source
+[source,$1]
+----
+$2
+----
+endsnippet
+
+snippet ----
+----
+$2
+----
+endsnippet
--- /dev/null
+snippet quote
+[quote, $1]
+----
+$2
+----
+endsnippet
+
+snippet source
+[source, $1]
+----
+$2
+----
+endsnippet
+
+snippet ----
+----
+$2
+----
+endsnippet
+
+snippet |===
+[%header, cols="$1"]
+|===
+| $2
+|===
+endsnippet
--- /dev/null
+snippet meta
+/* ---------------------------------------------------------------------------
+ * author: Austin Larsen
+ * synopsis: $1
+ * date: ${2:`date`}
+ * ---------------------------------------------------------------------------
+ *
+ * $0
+ */
+endsnippet
+
+snippet tstruct
+typedef struct _$1 {
+ $2
+} $1;
+endsnippet
+
+snippet tenum
+typedef enum _$1 {
+ $2
+} $1;
+endsnippet
+
+snippet maina
+int main(int argc, char **argv)
+{
+ $1
+}
+endsnippet
+
+snippet enum "Enum"
+enum ${1:name} {
+ ${2:/* data */}
+}; /* enum $1 */
+endsnippet
+
+snippet main
+int main(void)
+{
+ $1
+}
+endsnippet
+
+snippet defhead
+#ifndef _$1_H_
+#define _$1_H_
+
+$2
+
+#endif // _$1_H_
+endsnippet
+
+snippet fori
+for (int i = $1; i < $2; ++i) {
+ $3
+}
+endsnippet
+
+snippet for
+for ($1; $2; $3) {
+ $4
+}
+endsnippet
+
+snippet inc<
+#include <${1:stdio}.h>
+endsnippet
+
+snippet incq
+#include "$1.h"
+endsnippet
+
+snippet malloc
+$1 *${2:a} = malloc($3);
+
+$4
+
+free($2);
+endsnippet
+
+snippet switch
+switch ($1) {
+ $2
+}
+endsnippet
+
+snippet case
+case ${1:0}:
+{
+ $2
+ break;
+}
+endsnippet
+
+snippet casev
+case ${1:0}: $2 break;
+endsnippet
+
+snippet printfa
+printf("$1", ${2:variable});
+endsnippet
+
+snippet DEF
+#define $1
+endsnippet
+
+snippet /*
+/* $1
+*/
+endsnippet
+
+snippet /*v
+/* $1 */
+endsnippet
+
+snippet }elif
+} else if($1:condition) {
+ $2
+}
+endsnippet
+
+snippet strcmp0
+strcmp($1, $2) == 0
+endsnippet
+
+snippet ifstrcmp0
+if ( strcmp($1, $2) == 0 ) {
+ $3
+}
+endsnippet
+
+# string literal
+snippet strcmpl0
+strcmp($1, "$2") == 0
+endsnippet
+
+snippet ifstrcmpl0
+if(strcmp($1, "$2") == 0){
+ $3
+}
+endsnippet
+
+snippet chararr
+char $1[] = {
+ $3,
+};
+endsnippet
+
+snippet do
+do {
+ $3
+}while($2);
+endsnippet
+
+snippet defaultv
+default: $2 break;
+endsnippet
+
+snippet default
+default: {
+ $1
+ break;
+}$2
+endsnippet
+
+snippet printf
+printf("$1");
+endsnippet
+
+snippet puts
+puts("$1");
+endsnippet
+
+
+snippet func
+${1:void} ${2:function_name}(${3:variables})
+{
+ $5
+}
+endsnippet
+
+snippet vfunc
+void ${2:function_name}($2)
+ $3
+{
+ $4
+}
+endsnippet
+
+snippet ifunc
+int ${2:function_name}($2)
+ $3
+{
+ $4
+}
+endsnippet
+
+snippet ui8func
+uint8_t ${2:function_name}($3)
+{
+ $6
+}
+endsnippet
+
+snippet ui16func
+uint16_t ${2:function_name}($3)
+{
+ $6
+}
+endsnippet
+
+snippet ui32func
+uint32_t ${2:function_name}($3)
+{
+ $6
+}
+endsnippet
+
+snippet ui64func
+uint64_t ${2:function_name}($3)
+{
+ $6
+}
+endsnippet
+
+snippet vpfunc
+void * ${2:function_name}($2)
+ $3
+{
+ $4
+}
+endsnippet
+
+snippet cfunc
+char $2($3)
+{
+ $6
+}
+endsnippet
+
+snippet cpfunc
+char * $2($3)
+{
+ $6
+}
+endsnippet
+
+snippet ipfunc
+int * $2($3)
+{
+ $6
+}
+endsnippet
+
+snippet ui8pfunc
+uint8_t * ${2:function_name}($3)
+{
+ $6
+}
+endsnippet
+
+snippet ui16pfunc
+uint16_t * ${2:function_name}($3)
+{
+ $6
+}
+endsnippet
+
+snippet ui32pfunc
+uint32_t * ${2:function_name}($3)
+{
+ $6
+}
+endsnippet
+
+snippet ui64pfunc
+uint64_t * ${2:function_name}($3)
+{
+ $6
+}
+endsnippet
+
+snippet while
+while ($1) {
+ $2
+}
+endsnippet
+
+snippet perr
+fprintf(stderr, "$1");
+endsnippet
+
+snippet #if
+#if $1
+#endif
+endsnippet
+
+snippet if
+if ($1) {
+ $2
+}
+endsnippet
+
+snippet luaclib
+#include <lua.h>
+#include <lauxlib.h>
+
+// array of functions to be use in lua
+// element format: {char * lua_function_name, int (*lua_function) (lua_State*)}
+__declspec(dllexport) luaL_Reg $1[] = {
+ {NULL, NULL}
+};
+
+__declspec(dllexport) int luaopen_$2(lua_State *L)
+{
+ luaL_newlib(L, mylib);
+ return 1;
+}
+endsnippet
+
+snippet dllexport
+__declspec(dllexport) ${1:void} $2($3)
+{
+ $4
+}
+endsnippet
+
+snippet flua
+int l_${1:function_name}(lua_State *L)
+{
+ $3
+ return $2;
+}
+endsnippet
+
+snippet memset
+memset(&$1, ${2:0}, ${3:sizeof($4)});
+endsnippet
+
--- /dev/null
+snippet meta
+/* ---------------------------------------------------------------------------
+ * author: Austin Larsen
+ * synopsis: $1
+ * date: ${2:`date`}
+ * ---------------------------------------------------------------------------
+ *
+ * $0
+ */
+endsnippet
+
+snippet tstruct
+typedef struct _$1 {
+ $2
+} $1;
+endsnippet
+
+snippet maina
+int
+main(int argc, char **argv){
+ $1
+}
+endsnippet
+
+snippet main
+int
+main(){
+ $1
+}
+endsnippet
+
+snippet ns
+namespace $1 {
+
+} // namespace $1
+endsnippet
+
+snippet cout
+std::cout << $1 << ${3:"\n"};
+endsnippet
+
+snippet defhead
+#ifndef $1_H
+#define $1_H
+
+$2
+
+#endif // $1_H
+endsnippet
+
+snippet fori
+for(int i = $1; i < $2; ++i){
+ $3
+}
+endsnippet
+
+snippet for
+for($1; $2; $3){
+ $4
+}
+endsnippet
+
+snippet inc<
+#include <$1>
+endsnippet
+
+snippet vec
+std::vector<$1> $2
+endsnippet
+
+snippet incq
+#include "$1"
+endsnippet
+
+snippet malloc
+$1 *${2:a} = malloc($3);
+
+$4
+
+free($2);
+endsnippet
+
+snippet switch
+switch($1){
+ $2
+}
+endsnippet
+
+snippet case
+case ${1:0}: {
+ $2
+ break;
+}
+endsnippet
+
+snippet casev
+case ${1:0}: $2 break;
+endsnippet
+
+snippet printfa
+printf("$1", $2);
+endsnippet
+
+snippet DEF
+#define $1
+endsnippet
+# snippet /*
+# /* $1
+# */
+# endsnippet
+
+snippet /*
+/* $1
+ */
+endsnippet
+
+snippet /*v
+/* $1 */
+endsnippet
+
+snippet }elseif
+}else if($1){
+ $2
+}
+endsnippet
+
+snippet strcmp0
+strcmp($1, $2) == 0
+endsnippet
+
+snippet ifstrcmp0
+if(strcmp($1, $2) == 0){
+ $3
+}
+endsnippet
+
+# string literal
+snippet strcmpl0
+strcmp($1, "$2") == 0
+endsnippet
+
+snippet ifstrcmpl0
+if(strcmp($1, "$2") == 0){
+ $3
+}
+endsnippet
+
+snippet chararr
+char $1[] = {
+ $3,
+};
+endsnippet
+
+snippet do
+do {
+ $3
+}while($2);
+endsnippet
+
+snippet defaultv
+default: $2 break;
+endsnippet
+
+snippet default
+default: {
+ $1
+ break;
+}$2
+endsnippet
+
+snippet printf
+printf("$1");
+endsnippet
+
+snippet puts
+puts("$1");
+endsnippet
+
+
+snippet func
+${1:void} $2($3)
+$4
+{
+ $5
+}
+endsnippet
+
+snippet while
+while($1){
+ $2
+}
+endsnippet
+
+snippet perr
+fprintf(stderr, "$1");
+endsnippet
+
+snippet #if
+#if $1
+#endif
+endsnippet
+
+snippet if
+if($1){
+ $2
+}
+endsnippet
+
+# snippet *p
+# ($1);
+# endsnippet
--- /dev/null
+snippet html
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>$1</title>
+ </head>
+
+ <body>
+
+ </body>
+</html>
+endsnippet
+
+snippet a
+<a href="$1">$2</a>
+endsnippet
+
+snippet h1
+<h1>$1</h1>
+endsnippet
+
+snippet h1-i
+<h1 id="$1">$2</h1>
+endsnippet
+
+snippet h1-c
+<h1 class="$1">$2</h1>
+endsnippet
+
+snippet h2
+<h2>$1</h2>
+endsnippet
+
+snippet h2-i
+<h2 id="$1">$2</h2>
+endsnippet
+
+snippet h2-c
+<h2 class="$1">$2</h2>
+endsnippet
+
+snippet h3
+<h3>$1</h3>
+endsnippet
+
+snippet h3-i
+<h3 id="$1">$2</h3>
+endsnippet
+
+snippet h3-c
+<h3 class="$1">$2</h3>
+endsnippet
+
+snippet script
+<script>
+ $1
+</script>
+
+endsnippet
+
+snippet script-s
+<script src="$1.js"></script>
+endsnippet
+
+
+snippet lcss
+<link rel="stylesheet" type="text/css" href="$1.css">
+endsnippet
+
+snippet div
+<div>
+ $2
+</div>
+endsnippet
+
+snippet div-i
+<div id="$2">
+ $3
+</div>
+endsnippet
+
+snippet div-c
+<div class="$2">
+ $3
+</div>
+endsnippet
+
+snippet span
+<span>$1</span>
+endsnippet
+
+snippet span-i
+<span id="$1">$2</span>
+endsnippet
+
+snippet span-c
+<span class="$1">$2</span>
+endsnippet
+
+snippet body
+<body>
+ $1
+</body>
+endsnippet
+
+snippet <!
+<!--
+$0
+-->
+endsnippet
--- /dev/null
+snippet html
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>$1</title>
+ </head>
+
+ <body>
+
+ </body>
+</html>
+endsnippet
+
+snippet a
+<a href="$1">$2</a>
+endsnippet
+
+snippet h1
+<h1>$1</h1>
+endsnippet
+
+snippet h1-i
+<h1 id="$1">$2</h1>
+endsnippet
+
+snippet h1-c
+<h1 class="$1">$2</h1>
+endsnippet
+
+snippet h2
+<h2>$1</h2>
+endsnippet
+
+snippet h2-i
+<h2 id="$1">$2</h2>
+endsnippet
+
+snippet h2-c
+<h2 class="$1">$2</h2>
+endsnippet
+
+snippet h3
+<h3>$1</h3>
+endsnippet
+
+snippet h3-i
+<h3 id="$1">$2</h3>
+endsnippet
+
+snippet h3-c
+<h3 class="$1">$2</h3>
+endsnippet
+
+snippet script
+<script>
+ $1
+</script>
+
+endsnippet
+
+snippet script-s
+<script src="$1.js"></script>
+endsnippet
+
+
+snippet lcss
+<link rel="stylesheet" type="text/css" href="$1.css">
+endsnippet
+
+snippet div
+<div>
+ $2
+</div>
+endsnippet
+
+snippet div-i
+<div id="$2">
+ $3
+</div>
+endsnippet
+
+snippet div-c
+<div class="$2">
+ $3
+</div>
+endsnippet
+
+snippet span
+<span>$1</span>
+endsnippet
+
+snippet span-i
+<span id="$1">$2</span>
+endsnippet
+
+snippet span-c
+<span class="$1">$2</span>
+endsnippet
+
+snippet body
+<body>
+ $1
+</body>
+endsnippet
+
+snippet <!
+<!--
+$0
+-->
+endsnippet
+
+snippet link
+<link rel="$2" type="$3" href="${1:#}">
+endsnippet
--- /dev/null
+snippet for1
+for(let i = 0; i < $1.length; i++){
+
+}
+endsnippet
--- /dev/null
+snippet #+src
+#+BEGIN_SRC ${1:c}
+$2
+#+END_SRC
+endsnippet
+
+snippet #+ex
+#+BEGIN_EXAMPLE
+$2
+#+END_EXAMPLE
+endsnippet
--- /dev/null
+snippet def
+def $1($2):
+ $3
+endsnippet
+
+snippet defa
+def $1($2) -> $3:
+ $4
+endsnippet
+
+snippet defm
+defm $1(self, $2):
+ $3
+endsnippet
+
+# annotations
+snippet defma
+def $1(self, $2) -> $3:
+ $4
+endsnippet
--- /dev/null
+snippet function
+function $1()
+functionend
+endsnippet
--- /dev/null
+nnoremap <leader>ff :FZF<cr>
--- /dev/null
+" https://devhints.io/vimscript
+function! DebugFunc(file)
+ silent only
+ let l:file = expand("%:p:h") . "/" . a:file
+ exec "Termdebug" . l:file
+ exec "norm! \<C-w>j"
+ exec "norm! \<C-w>j"
+ exec "norm! \<C-w>L"
+endfunction
+
+
+function! MatchFilesFunc(pmatch, pfiles)
+ " QuickFixOpen
+ exec "vim /" . a:pmatch . "/ `find . -type f -name \"" . a:pfiles . "\"`"
+ copen
+endfunction
+
+function! ToggleQuickfix()
+ NERDTreeClose
+ " Check if any window is a quickfix window
+ if exists('*getwininfo')
+ let l:quickfix_wins = filter(getwininfo(), 'v:val.quickfix')
+ if !empty(l:quickfix_wins)
+ " Quickfix is open: close it
+ cclose
+ return
+ endif
+ endif
+ " Quickfix is closed: open it (if there are items)
+ if len(getqflist()) > 0
+ copen 10 " Open with height 10 (adjust as needed)
+ else
+ echom "Quickfix list is empty: cannot open."
+ endif
+endfunction
+
+function TerminalOpen()
+ bel terminal
+ resize 12
+ set nobl
+endfunction
+
+function! PreviewImage()
+ " Grab the file path under the cursor
+ let l:file = expand('<cfile>')
+ echo l:file
+
+ " Check if the extension is an image
+ if l:file =~? '\.\(png\|jpg\|jpeg\)$'
+ " Execute feh with the 'scale-down' geometry logic
+ " Note the single quotes inside the double quotes for the shell
+ silent execute '!feh --geometry 1600x900 --auto-zoom ' . shellescape(l:file) . ' &'
+ redraw!
+ else
+ echo "Not a valid image path: " . l:file
+ endif
+endfunction
+
+nnoremap <silent> gp :call PreviewImage()<CR>
+
+command! -nargs=1 Debug call DebugFunc(<q-args>)
+command! -nargs=0 TermOpen call TerminalOpen()
+command! -nargs=0 QuickFixOpen NERDTreeClose | silent only
+command! -nargs=* MatchFiles call MatchFilesFunc(<f-args>)
+
+" autocmd VimEnter * call TerminalOpen()
--- /dev/null
+require("gruvbox").setup({
+ terminal_colors = true, -- add neovim terminal colors
+ undercurl = true,
+ underline = true,
+ bold = true,
+ italic = {
+ strings = true,
+ emphasis = true,
+ comments = true,
+ operators = false,
+ folds = true,
+ },
+ strikethrough = true,
+ invert_selection = false,
+ invert_signs = false,
+ invert_tabline = false,
+ inverse = true, -- invert background for search, diffs, statuslines and errors
+ contrast = "", -- can be "hard", "soft" or empty string
+ palette_overrides = {},
+ overrides = {},
+ dim_inactive = false,
+ transparent_mode = true,
+})
+vim.cmd("colorscheme gruvbox")
--- /dev/null
+vim.diagnostic.config({virtual_text = true })
+-- use ctrl-x ctrl-o to start autocompletion
+-- local _border = "single"
+
+vim.lsp.config("eslint", {
+ cmd = { "vscode-eslint-language-server", "--stdio" },
+ filetypes = {
+ "javascript",
+ "javascriptreact",
+ "typescript",
+ "typescriptreact",
+ "vue",
+ "svelte",
+ },
+ root_markers = {
+ ".eslintrc",
+ ".eslintrc.js",
+ ".eslintrc.json",
+ "eslint.config.mjs",
+ "eslint.config.js",
+ "package.json",
+ },
+ settings = {
+ format = false, -- do not fight prettier
+ },
+})
+
+vim.lsp.enable("eslint")
+vim.lsp.enable("clangd")
+
--- /dev/null
+let g:NERDTreeMarkedNodes = []
+let g:hilines = ''
+let g:hilines_idx = -1
+let g:alpha = 'abcdefghijklmnopqrstuvwxyz'
+let NERDTreeIgnore = ['\.o$', '\.spv$', "^.gitignore$"]
+
+
+" I use enter and not o to open files
+autocmd FileType nerdtree nunmap <buffer> o
+
+" Create an autocommand specifically for NERDTree buffers
+autocmd FileType nerdtree nnoremap <buffer> op :call OpenWithFeh()<cr>
+autocmd FileType nerdtree nnoremap <buffer> og :call OpenWithGimp()<cr>
+
+function! OpenWithFeh()
+ " Get the path of the file under the cursor from NERDTree's internal state
+ let l:path = g:NERDTreeFileNode.GetSelected().path.str()
+
+ " Check if it's a PNG (case insensitive)
+ if l:path =~? '\.png$'
+ " Launch feh and immediately return control to Vim
+ silent execute '!feh --geometry 1600x900 --auto-zoom ' . shellescape(l:path) . ' &'
+ redraw!
+ else
+ " If not a PNG, trigger the standard NERDTree 'o' functionality
+ execute "normal! o"
+ endif
+endfunction
+
+function! OpenWithGimp()
+ let l:node = g:NERDTreeFileNode.GetSelected()
+ if l:node != {}
+ let l:path = l:node.path.str()
+ if l:path =~? '\.png$'
+ " Launch Gimp in the background
+ @echo "Opening in Gimp..."
+ silent execute '!gimp ' . shellescape(l:path) . ' &'
+ redraw!
+ else
+ " For non-images, 'e' usually opens the file in a new tab/split in some configs
+ " or we can just fall back to standard 'o' behavior
+ execute "normal! o"
+ endif
+ endif
+endfunction
+
+function Hi(type, group)
+ if g:hilines !=# ''
+ if a:type ==# 'line'
+ let g:hilines .= '\|'.'\%'.line('.').'l'
+ elseif a:type ==# 'nonWhiteSpace'
+ let g:hilines .= '\|'.'\(\%'.line('.').'l\&\S\)'
+ endif
+
+ else
+ if a:type ==# 'line'
+ let g:hilines = '\%'.line('.').'l'
+ elseif a:type ==# 'nonWhiteSpace'
+ let g:hilines = '\(\%'.line('.').'l\&\S\)'
+ endif
+ endif
+ let g:hilines_idx = g:hilines_idx + 1
+
+ exec 'match '.a:group.' /'.g:hilines.'/'
+ exec 'normal! m'.g:alpha[g:hilines_idx]
+endfunction
+
+function ClearHi()
+ exec 'match none'
+ let g:hilines = ''
+ exec 'delmarks a-z'
+endfunction
+
+call NERDTreeAddKeyMap({
+ \ 'key': 'Mn',
+ \ 'callback': 'NERDTreeMarkNode',
+ \ 'quickhelpText': 'mark nodes for future editing',
+ \ 'scope': 'Node' })
+
+" call NERDTreeMarkNode(NERDTreeFileNode.GetSelected())
+function! NERDTreeMarkNode(dirnode)
+ if match(bufname(), "NERD_tree") != 0
+ return
+ endif
+ call Hi('nonWhiteSpace', 'Title')
+ let g:NERDTreeMarkedNodes += [a:dirnode.path.str()]
+endfunction
+
+call NERDTreeAddKeyMap({
+ \ 'key': 'Mc',
+ \ 'callback': 'NERDTreeClearMarks',
+ \ 'quickhelpText': 'unmark all nodes',
+ \ 'scope': 'all' })
+
+function! NERDTreeClearMarks()
+ call ClearHi()
+ let g:NERDTreeMarkedNodes = []
+endfunction
+
+call NERDTreeAddKeyMap({
+ \ 'key': 'Mx',
+ \ 'callback': 'NERDTreeMarkedExec',
+ \ 'quickhelpText': 'execute a shell command on all marked nodes',
+ \ 'scope': 'all' })
+
+function! NERDTreeMarkedExec()
+ if empty(g:NERDTreeMarkedNodes)
+ echo 'no nodes selected'
+ return
+ endif
+
+ let l:in = input('cmd: ')
+
+ let l:allFiles = ''
+
+ for file in g:NERDTreeMarkedNodes
+ let l:allFiles .= '"'.file.'" '
+ endfor
+
+ let l:cmd = substitute(l:in, '\s%n\(\>\|\s\)', ' '.l:allFiles, 'g')
+
+ exec ':!'.l:cmd
+ call NERDTreeClearMarks()
+ NERDTreeRefreshRoot
+endfunction
+
+nnoremap <leader>nn :NERDTreeToggle<cr>
+nnoremap <leader>nd :exec 'NERDTree '.getcwd()<cr>
+nnoremap <leader>nf :NERDTreeFind<cr>
+nnoremap <leader>nF :exec 'NERDTree '.bufname()<cr>
+nnoremap <leader>nc :NERDTreeClose<cr>
+nnoremap <leader>nb :NERDTreeFromBookmark<Space>
+nnoremap <silent> <leader>nma :call NERDTreeMarkNode(NERDTreeFileNode.GetSelected())<cr>
+nnoremap <silent> <leader>nmc :call NERDTreeClearMarks()<cr>
+nnoremap <leader>nmx :call NERDTreeMarkedExec()<cr>
--- /dev/null
+-- This module contains a number of default definitions
+local rainbow_delimiters = require 'rainbow-delimiters'
+
+vim.g.rainbow_delimiters = {
+ strategy = {
+ [''] = rainbow_delimiters.strategy['global'],
+ vim = rainbow_delimiters.strategy['local'],
+ },
+ query = {
+ [''] = 'rainbow-delimiters',
+ lua = 'rainbow-blocks',
+ },
+ highlight = {
+ 'RainbowDelimiterRed',
+ 'RainbowDelimiterYellow',
+ 'RainbowDelimiterBlue',
+ 'RainbowDelimiterOrange',
+ 'RainbowDelimiterGreen',
+ 'RainbowDelimiterViolet',
+ 'RainbowDelimiterCyan',
+ },
+}
+-- ---@type rainbow_delimiters.config
+--
+-- vim.g.rainbow_delimiters = {
+-- strategy = {
+-- [''] = 'rainbow-delimiters.strategy.global',
+-- vim = 'rainbow-delimiters.strategy.local',
+-- },
+-- query = {
+-- [''] = 'rainbow-delimiters',
+-- lua = 'rainbow-blocks',
+-- },
+-- priority = {
+-- [''] = 110,
+-- lua = 210,
+-- },
+-- highlight = {
+-- 'RainbowDelimiterRed',
+-- 'RainbowDelimiterYellow',
+-- 'RainbowDelimiterBlue',
+-- 'RainbowDelimiterOrange',
+-- 'RainbowDelimiterGreen',
+-- 'RainbowDelimiterViolet',
+-- 'RainbowDelimiterCyan',
+-- },
+-- }
--- /dev/null
+require("nvim-treesitter.configs").setup({
+ ensure_installed = { "javascript", "html", "c", "lua", "vim", "bash"}, -- parsers you want
+ highlight = {
+ enable = true, -- ✅ this must be true
+ additional_vim_regex_highlighting = false, -- optional
+ },
+ indent = { enable = true }, -- optional
+})
+
--- /dev/null
+" Vim syntax file
+" Language: C Additions
+" Maintainer: Mikhail Wolfson <mywolfson@gmail.com>
+" URL: http://web.mit.edu/wolfsonm
+" Last Change: 2010 Dec. 3
+" Version: 0.4
+"
+" Changelog:
+" 0.4 - updates and fixes to cDelimiter to fix break with foldmethod=syntax,
+" entirely suggested and solved by Ivan Freitas
+" <ivansichfreitas@gmail.com>
+" 0.3 - updates and fixes to cUserFunctionPointer, thanks to
+" Alexei <lxmzhv@gmail.com>
+" 0.2 - change [] to operator
+" 0.1 - initial upload, modification from vimscript#1201, Extended c.vim
+
+
+" Common ANSI-standard functions
+syn keyword cAnsiFunction MULU_ DIVU_ MODU_ MUL_ DIV_ MOD_
+syn keyword cAnsiFunction main typeof
+syn keyword cAnsiFunction open close read write lseek dup dup2
+syn keyword cAnsiFunction fcntl ioctl
+syn keyword cAnsiFunction wctrans towctrans towupper
+syn keyword cAnsiFunction towlower wctype iswctype
+syn keyword cAnsiFunction iswxdigit iswupper iswspace
+syn keyword cAnsiFunction iswpunct iswprint iswlower
+syn keyword cAnsiFunction iswgraph iswdigit iswcntrl
+syn keyword cAnsiFunction iswalpha iswalnum wcsrtombs
+syn keyword cAnsiFunction mbsrtowcs wcrtomb mbrtowc
+syn keyword cAnsiFunction mbrlen mbsinit wctob
+syn keyword cAnsiFunction btowc wcsfxtime wcsftime
+syn keyword cAnsiFunction wmemset wmemmove wmemcpy
+syn keyword cAnsiFunction wmemcmp wmemchr wcstok
+syn keyword cAnsiFunction wcsstr wcsspn wcsrchr
+syn keyword cAnsiFunction wcspbrk wcslen wcscspn
+syn keyword cAnsiFunction wcschr wcsxfrm wcsncmp
+syn keyword cAnsiFunction wcscoll wcscmp wcsncat
+syn keyword cAnsiFunction wcscat wcsncpy wcscpy
+syn keyword cAnsiFunction wcstoull wcstoul wcstoll
+syn keyword cAnsiFunction wcstol wcstold wcstof
+syn keyword cAnsiFunction wcstod ungetwc putwchar
+syn keyword cAnsiFunction putwc getwchar getwc
+syn keyword cAnsiFunction fwide fputws fputwc
+syn keyword cAnsiFunction fgetws fgetwc wscanf
+syn keyword cAnsiFunction wprintf vwscanf vwprintf
+syn keyword cAnsiFunction vswscanf vswprintf vfwscanf
+syn keyword cAnsiFunction vfwprintf swscanf swprintf
+syn keyword cAnsiFunction fwscanf fwprintf zonetime
+syn keyword cAnsiFunction strfxtime strftime localtime
+syn keyword cAnsiFunction gmtime ctime asctime
+syn keyword cAnsiFunction time mkxtime mktime
+syn keyword cAnsiFunction difftime clock strlen
+syn keyword cAnsiFunction strerror memset strtok
+syn keyword cAnsiFunction strstr strspn strrchr
+syn keyword cAnsiFunction strpbrk strcspn strchr
+syn keyword cAnsiFunction memchr strxfrm strncmp
+syn keyword cAnsiFunction strcoll strcmp memcmp
+syn keyword cAnsiFunction strncat strcat strncpy
+syn keyword cAnsiFunction strcpy memmove memcpy
+syn keyword cAnsiFunction wcstombs mbstowcs wctomb
+syn keyword cAnsiFunction mbtowc mblen lldiv
+syn keyword cAnsiFunction ldiv div llabs
+syn keyword cAnsiFunction labs abs qsort
+syn keyword cAnsiFunction bsearch system getenv
+syn keyword cAnsiFunction exit atexit abort
+syn keyword cAnsiFunction realloc malloc free
+syn keyword cAnsiFunction calloc srand rand
+syn keyword cAnsiFunction strtoull strtoul strtoll
+syn keyword cAnsiFunction strtol strtold strtof
+syn keyword cAnsiFunction strtod atoll atol
+syn keyword cAnsiFunction atoi atof perror
+syn keyword cAnsiFunction ferror feof clearerr
+syn keyword cAnsiFunction rewind ftell fsetpos
+syn keyword cAnsiFunction fseek fgetpos fwrite
+syn keyword cAnsiFunction fread ungetc puts
+syn keyword cAnsiFunction putchar putc gets
+syn keyword cAnsiFunction getchar getc fputs
+syn keyword cAnsiFunction fputc fgets fgetc
+syn keyword cAnsiFunction vsscanf vsprintf vsnprintf
+syn keyword cAnsiFunction vscanf vprintf vfscanf
+syn keyword cAnsiFunction vfprintf sscanf sprintf
+syn keyword cAnsiFunction snprintf scanf printf
+syn keyword cAnsiFunction fscanf fprintf setvbuf
+syn keyword cAnsiFunction setbuf freopen fopen
+syn keyword cAnsiFunction fflush fclose tmpnam
+syn keyword cAnsiFunction tmpfile rename remove
+syn keyword cAnsiFunction offsetof va_start va_end
+syn keyword cAnsiFunction va_copy va_arg raise signal
+syn keyword cAnsiFunction longjmp setjmp isunordered
+syn keyword cAnsiFunction islessgreater islessequal isless
+syn keyword cAnsiFunction isgreaterequal isgreater fmal
+syn keyword cAnsiFunction fmaf fma fminl
+syn keyword cAnsiFunction fminf fmin fmaxl
+syn keyword cAnsiFunction fmaxf fmax fdiml
+syn keyword cAnsiFunction fdimf fdim nextafterxl
+syn keyword cAnsiFunction nextafterxf nextafterx nextafterl
+syn keyword cAnsiFunction nextafterf nextafter nanl
+syn keyword cAnsiFunction nanf nan copysignl
+syn keyword cAnsiFunction copysignf copysign remquol
+syn keyword cAnsiFunction remquof remquo remainderl
+syn keyword cAnsiFunction remainderf remainder fmodl
+syn keyword cAnsiFunction fmodf fmod truncl
+syn keyword cAnsiFunction truncf trunc llroundl
+syn keyword cAnsiFunction llroundf llround lroundl
+syn keyword cAnsiFunction lroundf lround roundl
+syn keyword cAnsiFunction roundf round llrintl
+syn keyword cAnsiFunction llrintf llrint lrintl
+syn keyword cAnsiFunction lrintf lrint rintl
+syn keyword cAnsiFunction rintf rint nearbyintl
+syn keyword cAnsiFunction nearbyintf nearbyint floorl
+syn keyword cAnsiFunction floorf floor ceill
+syn keyword cAnsiFunction ceilf ceil tgammal
+syn keyword cAnsiFunction tgammaf tgamma lgammal
+syn keyword cAnsiFunction lgammaf lgamma erfcl
+syn keyword cAnsiFunction erfcf erfc erfl
+syn keyword cAnsiFunction erff erf sqrtl
+syn keyword cAnsiFunction sqrtf sqrt powl
+syn keyword cAnsiFunction powf pow hypotl
+syn keyword cAnsiFunction hypotf hypot fabsl
+syn keyword cAnsiFunction fabsf fabs cbrtl
+syn keyword cAnsiFunction cbrtf cbrt scalblnl
+syn keyword cAnsiFunction scalblnf scalbln scalbnl
+syn keyword cAnsiFunction scalbnf scalbn modfl
+syn keyword cAnsiFunction modff modf logbl
+syn keyword cAnsiFunction logbf logb log2l
+syn keyword cAnsiFunction log2f log2 log1pl
+syn keyword cAnsiFunction log1pf log1p log10l
+syn keyword cAnsiFunction log10f log10 logl
+syn keyword cAnsiFunction logf log ldexpl
+syn keyword cAnsiFunction ldexpf ldexp ilogbl
+syn keyword cAnsiFunction ilogbf ilogb frexpl
+syn keyword cAnsiFunction frexpf frexp expm1l
+syn keyword cAnsiFunction expm1f expm1 exp2l
+syn keyword cAnsiFunction exp2f exp2 expl
+syn keyword cAnsiFunction expf exp tanhl
+syn keyword cAnsiFunction tanhf tanh sinhl
+syn keyword cAnsiFunction sinhf sinh coshl
+syn keyword cAnsiFunction coshf cosh atanhl
+syn keyword cAnsiFunction atanhf atanh asinhl
+syn keyword cAnsiFunction asinhf asinh acoshl
+syn keyword cAnsiFunction acoshf acosh tanl
+syn keyword cAnsiFunction tanf tan sinl
+syn keyword cAnsiFunction sinf sin cosl
+syn keyword cAnsiFunction cosf cos atan2l
+syn keyword cAnsiFunction atan2f atan2 atanl
+syn keyword cAnsiFunction atanf atan asinl
+syn keyword cAnsiFunction asinf asin acosl
+syn keyword cAnsiFunction acosf acos signbit
+syn keyword cAnsiFunction isnormal isnan isinf
+syn keyword cAnsiFunction isfinite fpclassify localeconv
+syn keyword cAnsiFunction setlocale wcstoumax wcstoimax
+syn keyword cAnsiFunction strtoumax strtoimax feupdateenv
+syn keyword cAnsiFunction fesetenv feholdexcept fegetenv
+syn keyword cAnsiFunction fesetround fegetround fetestexcept
+syn keyword cAnsiFunction fesetexceptflag feraiseexcept fegetexceptflag
+syn keyword cAnsiFunction feclearexcept toupper tolower
+syn keyword cAnsiFunction isxdigit isupper isspace
+syn keyword cAnsiFunction ispunct isprint islower
+syn keyword cAnsiFunction isgraph isdigit iscntrl
+syn keyword cAnsiFunction isalpha isalnum creall
+syn keyword cAnsiFunction crealf creal cprojl
+syn keyword cAnsiFunction cprojf cproj conjl
+syn keyword cAnsiFunction conjf conj cimagl
+syn keyword cAnsiFunction cimagf cimag cargl
+syn keyword cAnsiFunction cargf carg csqrtl
+syn keyword cAnsiFunction csqrtf csqrt cpowl
+syn keyword cAnsiFunction cpowf cpow cabsl
+syn keyword cAnsiFunction cabsf cabs clogl
+syn keyword cAnsiFunction clogf clog cexpl
+syn keyword cAnsiFunction cexpf cexp ctanhl
+syn keyword cAnsiFunction ctanhf ctanh csinhl
+syn keyword cAnsiFunction csinhf csinh ccoshl
+syn keyword cAnsiFunction ccoshf ccosh catanhl
+syn keyword cAnsiFunction catanhf catanh casinhl
+syn keyword cAnsiFunction casinhf casinh cacoshl
+syn keyword cAnsiFunction cacoshf cacosh ctanl
+syn keyword cAnsiFunction ctanf ctan csinl
+syn keyword cAnsiFunction csinf csin ccosl
+syn keyword cAnsiFunction ccosf ccos catanl
+syn keyword cAnsiFunction catanf catan casinl
+syn keyword cAnsiFunction casinf casin cacosl
+syn keyword cAnsiFunction cacosf cacos assert
+syn keyword cAnsiFunction UINTMAX_C INTMAX_C UINT64_C
+syn keyword cAnsiFunction UINT32_C UINT16_C UINT8_C
+syn keyword cAnsiFunction INT64_C INT32_C INT16_C INT8_C
+
+" Common ANSI-standard Names
+syn keyword cAnsiName PRId8 PRIi16 PRIo32 PRIu64
+syn keyword cAnsiName PRId16 PRIi32 PRIo64 PRIuLEAST8
+syn keyword cAnsiName PRId32 PRIi64 PRIoLEAST8 PRIuLEAST16
+syn keyword cAnsiName PRId64 PRIiLEAST8 PRIoLEAST16 PRIuLEAST32
+syn keyword cAnsiName PRIdLEAST8 PRIiLEAST16 PRIoLEAST32 PRIuLEAST64
+syn keyword cAnsiName PRIdLEAST16 PRIiLEAST32 PRIoLEAST64 PRIuFAST8
+syn keyword cAnsiName PRIdLEAST32 PRIiLEAST64 PRIoFAST8 PRIuFAST16
+syn keyword cAnsiName PRIdLEAST64 PRIiFAST8 PRIoFAST16 PRIuFAST32
+syn keyword cAnsiName PRIdFAST8 PRIiFAST16 PRIoFAST32 PRIuFAST64
+syn keyword cAnsiName PRIdFAST16 PRIiFAST32 PRIoFAST64 PRIuMAX
+syn keyword cAnsiName PRIdFAST32 PRIiFAST64 PRIoMAX PRIuPTR
+syn keyword cAnsiName PRIdFAST64 PRIiMAX PRIoPTR PRIx8
+syn keyword cAnsiName PRIdMAX PRIiPTR PRIu8 PRIx16
+syn keyword cAnsiName PRIdPTR PRIo8 PRIu16 PRIx32
+syn keyword cAnsiName PRIi8 PRIo16 PRIu32 PRIx64
+
+syn keyword cAnsiName PRIxLEAST8 SCNd8 SCNiFAST32 SCNuLEAST32
+syn keyword cAnsiName PRIxLEAST16 SCNd16 SCNiFAST64 SCNuLEAST64
+syn keyword cAnsiName PRIxLEAST32 SCNd32 SCNiMAX SCNuFAST8
+syn keyword cAnsiName PRIxLEAST64 SCNd64 SCNiPTR SCNuFAST16
+syn keyword cAnsiName PRIxFAST8 SCNdLEAST8 SCNo8 SCNuFAST32
+syn keyword cAnsiName PRIxFAST16 SCNdLEAST16 SCNo16 SCNuFAST64
+syn keyword cAnsiName PRIxFAST32 SCNdLEAST32 SCNo32 SCNuMAX
+syn keyword cAnsiName PRIxFAST64 SCNdLEAST64 SCNo64 SCNuPTR
+syn keyword cAnsiName PRIxMAX SCNdFAST8 SCNoLEAST8 SCNx8
+syn keyword cAnsiName PRIxPTR SCNdFAST16 SCNoLEAST16 SCNx16
+syn keyword cAnsiName PRIX8 SCNdFAST32 SCNoLEAST32 SCNx32
+syn keyword cAnsiName PRIX16 SCNdFAST64 SCNoLEAST64 SCNx64
+syn keyword cAnsiName PRIX32 SCNdMAX SCNoFAST8 SCNxLEAST8
+syn keyword cAnsiName PRIX64 SCNdPTR SCNoFAST16 SCNxLEAST16
+syn keyword cAnsiName PRIXLEAST8 SCNi8 SCNoFAST32 SCNxLEAST32
+syn keyword cAnsiName PRIXLEAST16 SCNi16 SCNoFAST64 SCNxLEAST64
+syn keyword cAnsiName PRIXLEAST32 SCNi32 SCNoMAX SCNxFAST8
+syn keyword cAnsiName PRIXLEAST64 SCNi64 SCNoPTR SCNxFAST16
+syn keyword cAnsiName PRIXFAST8 SCNiLEAST8 SCNu8 SCNxFAST32
+syn keyword cAnsiName PRIXFAST16 SCNiLEAST16 SCNu16 SCNxFAST64
+syn keyword cAnsiName PRIXFAST32 SCNiLEAST32 SCNu32 SCNxMAX
+syn keyword cAnsiName PRIXFAST64 SCNiLEAST64 SCNu64 SCNxPTR
+syn keyword cAnsiName PRIXMAX SCNiFAST8 SCNuLEAST8
+syn keyword cAnsiName PRIXPTR SCNiFAST16 SCNuLEAST16
+
+syn keyword cAnsiName errno environ
+
+syn keyword cAnsiName STDC CX_LIMITED_RANGE
+syn keyword cAnsiName STDC FENV_ACCESS
+syn keyword cAnsiName STDC FP_CONTRACT
+
+syn keyword cAnsiName AF_INET SOCK_STREAM INADDR_ANY AF_INET
+syn keyword cAnsiName SOL_SOCKET SO_REUSEPORT SO_REUSEADDR
+syn keyword cAnsiName SO_RCVTIMEO IPPROTO_TCP TCP_NODELAY
+syn keyword cAnsiName SOCK_DGRAM POLLIN
+
+syn keyword cAnsiName and bitor not_eq xor
+syn keyword cAnsiName and_eq compl or xor_eq
+syn keyword cAnsiName bitand not or_eq
+
+hi def link cAnsiFunction cFunction
+hi def link cAnsiName cIdentifier
+
+" Operators
+syn match cOperator "\(<<\|>>\|[-+*/%&^|<>!=]\)="
+syn match cOperator "<<\|>>\|&&\|||\|++\|--\|->"
+syn match cOperator "[.!~*&%<>^|=,+-]"
+syn match cOperator "/[^/*=]"me=e-1
+syn match cOperator "/$"
+syn match cOperator "&&\|||"
+syn match cOperator "[][]"
+
+" Preprocs
+syn keyword cDefined defined contained containedin=cDefine
+hi def link cDefined cDefine
+
+" Functions
+syn match cUserFunction "\<\h\w*\>\(\s\|\n\)*("me=e-1 contains=cType,cDelimiter,cDefine
+syn match cUserFunctionPointer "(\s*\*\s*\h\w*\s*)\(\s\|\n\)*(" contains=cDelimiter,cOperator
+
+hi def link cUserFunction cFunction
+hi def link cUserFunctionPointer cFunction
+
+" Delimiters
+syn match cDelimiter "[();\\]"
+" foldmethod=syntax fix, courtesy of Ivan Freitas
+syn match cBraces display "[{}]"
+
+" Booleans
+syn keyword cBoolean true false TRUE FALSE
+
+" Links
+hi def link cFunction Function
+hi def link cIdentifier Identifier
+hi def link cDelimiter Delimiter
+" foldmethod=syntax fix, courtesy of Ivan Freitas
+hi def link cBraces Delimiter
+hi def link cBoolean Boolean
+
+" 1. Highlight Struct Names (Vulkan style and CamelCase)
+syn match cCustomStruct "\<Vk[A-Z]\w*\>"
+syn match cCustomStruct "\<[A-Z][a-z]\w\+Info\>"
+hi def link cCustomStruct Type
+
+" 2. Highlight Struct Members (like .sType)
+" Matches a dot followed by a word
+syn match cStructMember "\.\@1<=\w\+"
+" Matches an arrow followed by a word
+syn match cStructMember "->\@2<=\w\+"
+hi def link cStructMember Identifier
+
+" 3. Highlight Variable Names (Simplified)
+" This highlights words followed by an assignment or used in declarations
+syn match cVariable "\<\w\+\>\ze\s*="
+hi def link cVariable @variable
--- /dev/null
+require("config.lazy")
+require("nyquist")
--- /dev/null
+{
+ "auto-pairs": { "branch": "master", "commit": "39f06b873a8449af8ff6a3eee716d3da14d63a76" },
+ "fzf": { "branch": "master", "commit": "3f94bcb5bf93b0c04a7fc4087dff8f99e84e4a9b" },
+ "fzf.vim": { "branch": "master", "commit": "ddc14a6a5471147e2a38e6b32a7268282f669b0a" },
+ "gruvbox.nvim": { "branch": "main", "commit": "5e0a460d8e0f7f669c158dedd5f9ae2bcac31437" },
+ "lazy.nvim": { "branch": "main", "commit": "db067881fff0fd4be8c00e5bde7492e0e1c77a2f" },
+ "lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" },
+ "lightline.vim": { "branch": "master", "commit": "e358557e1a9f9fc860416c8eb2e34c0404078155" },
+ "mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" },
+ "nerdtree": { "branch": "master", "commit": "690d061b591525890f1471c6675bcb5bdc8cdff9" },
+ "nvim-lspconfig": { "branch": "master", "commit": "92ee7d42320edfbb81f3cad851314ab197fa324a" },
+ "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
+ "rainbow-delimiters.nvim": { "branch": "master", "commit": "8aafe2cbd89cd4090f573a98cab6b20366576fde" },
+ "ultisnips": { "branch": "master", "commit": "b22a86f9dcc5257624bff3c72d8b902eac468aad" },
+ "undotree": { "branch": "master", "commit": "178d19e00a643f825ea11d581b1684745d0c4eda" },
+ "vim-SyntaxRange": { "branch": "master", "commit": "78004d2ec1d68f9d1d8b54c1803a52feb2f938f3" },
+ "vim-asciidoctor": { "branch": "master", "commit": "d45364d662489e0ffcad0e2bc6f41c859ba58799" },
+ "vim-commentary": { "branch": "master", "commit": "64a654ef4a20db1727938338310209b6a63f60c9" },
+ "vim-fugitive": { "branch": "master", "commit": "61b51c09b7c9ce04e821f6cf76ea4f6f903e3cf4" },
+ "vim-gitbranch": { "branch": "master", "commit": "1a8ba866f3eaf0194783b9f8573339d6ede8f1ed" },
+ "vim-grammarous": { "branch": "master", "commit": "db46357465ce587d5325e816235b5e92415f8c05" }
+}
--- /dev/null
+-- Bootstrap lazy.nvim
+local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
+if not (vim.uv or vim.loop).fs_stat(lazypath) then
+ local lazyrepo = "https://github.com/folke/lazy.nvim.git"
+ local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
+ if vim.v.shell_error ~= 0 then
+ vim.api.nvim_echo({
+ { "Failed to clone lazy.nvim:\n", "ErrorMsg" },
+ { out, "WarningMsg" },
+ { "\nPress any key to exit..." },
+ }, true, {})
+ vim.fn.getchar()
+ os.exit(1)
+ end
+end
+vim.opt.rtp:prepend(lazypath)
+
+-- Make sure to setup `mapleader` and `maplocalleader` before
+-- loading lazy.nvim so that mappings are correct.
+-- This is also a good place to setup other settings (vim.opt)
+vim.g.mapleader = ","
+vim.g.maplocalleader = "\\"
+
+-- Setup lazy.nvim
+require("lazy").setup({
+ spec = {
+ -- import your plugins
+ { import = "config.plugins" },
+ { "folke/lazydev.nvim" },
+ {"nvim-treesitter/nvim-treesitter", branch = 'master', lazy = false, build = ":TSUpdate"},
+ {'mbbill/undotree'},
+ {'tpope/vim-fugitive'},
+ {'tpope/vim-commentary'},
+ {'preservim/nerdtree'},
+ {'itchyny/lightline.vim'},
+ {'SirVer/ultisnips'},
+ {'jiangmiao/auto-pairs'},
+ {'itchyny/vim-gitbranch'},
+ {'habamax/vim-asciidoctor'},
+ {'inkarkat/vim-SyntaxRange'},
+ {'hiphish/rainbow-delimiters.nvim'},
+ {'junegunn/fzf', build = ':fzf#install()' },
+ {'junegunn/fzf.vim'},
+ {'rhysd/vim-grammarous'},
+ {'neovim/nvim-lspconfig'},
+ {'folke/lazydev.nvim'},
+ -- {'pangloss/vim-javascript'},
+ -- {
+ -- 'esmuellert/nvim-eslint',
+ -- config = function()
+ -- require('nvim-eslint').setup({})
+ -- end,
+ -- },
+ {"ellisonleao/gruvbox.nvim", priority = 1000 , config = true, opts = ...},
+ {
+ "mason-org/mason.nvim",
+ opts = {}
+ },
+ },
+ ui = {
+ border = "single", -- ✅ adds a border around Lazy TUI window
+ },
+ -- Configure any other settings here. See the documentation for more details.
+ -- colorscheme that will be used when installing plugins.
+ -- install = { colorscheme = { "habamax" } },
+ -- automatically check for plugin updates
+ -- checker = { enabled = true },
+})
--- /dev/null
+return {
+ {
+ "folke/lazydev.nvim",
+ ft = "lua", -- only load on lua files
+ opts = {
+ library = {
+ -- See the configuration section for more details
+ -- Load luvit types when the `vim.uv` word is found
+ { path = "${3rd}/luv/library", words = { "vim%.uv" } },
+ },
+ },
+ },
+}
--- /dev/null
+vim.g.pymode_python = 'python3'
+vim.opt.list = false
+vim.opt.listchars = { tab = ">.", trail = ".", extends = "#", nbsp = "." }
+vim.opt.hlsearch = true
+vim.opt.incsearch = true
+vim.opt.cursorline = true
+vim.api.nvim_set_hl(0, "CursorColumn", {ctermbg=8})
+vim.api.nvim_set_hl(0, "CursorLine", {ctermbg=8})
+ vim.api.nvim_set_hl(0, "CursorLine", { bg = "#000000" })
+vim.opt.conceallevel = 3
+vim.opt.relativenumber = true
+vim.opt.showtabline = 2
+vim.opt.number = true
+vim.opt.foldcolumn = "1"
+vim.opt.tabstop = 4
+vim.opt.softtabstop= 0
+vim.opt.expandtab = true
+vim.opt.shiftwidth=4
+vim.opt.smarttab = true
+vim.opt.wrap = false
+vim.opt.textwidth=80
+vim.opt.termguicolors = true
+vim.opt.winborder = 'bold'
+vim.opt.colorcolumn = '80'
+
+
+vim.cmd[[
+packadd termdebug
+let s:fontsize = 12
+function! AdjustFontSize(amount)
+ let s:fontsize = s:fontsize+a:amount
+ :execute "GuiFont! Consolas:h" . s:fontsize
+endfunction
+
+function! SetFontSize(amount)
+ let s:fontsize = a:amount
+ :execute "GuiFont! Consolas:h" . s:fontsize
+endfunction
+
+if has("win32")
+ nnoremap <c-z> <nop>
+endif
+
+noremap <silent> <C-=> :call AdjustFontSize(1)<CR><c-w>=
+noremap <silent> <C--> :call AdjustFontSize(-1)<CR><c-w>=
+inoremap <silent> <C-+> <Esc>:call AdjustFontSize(1)<CR><c-w>=a
+inoremap <silent> <C--> <Esc>:call AdjustFontSize(-1)<CR><c-w>=a
+inoremap <silent> <C-0> <Esc>:call SetFontSize(10)<cr><c-w>=a
+nnoremap <silent> <C-0> :call SetFontSize(10)<cr><c-w>=
+" autocmd BufEnter,BufRead,BufNewFile *.lua :bufdo lua vim.diagnostic.disable()<cr>
+]]
--- /dev/null
+require("nyquist.remap")
+require("nyquist.global")
+
--- /dev/null
+-- This file can be loaded by calling `lua require('plugins')` from your init.vim
+
+-- Only required if you have packer configured as `opt`
+vim.cmd [[packadd packer.nvim]]
+
+return require('packer').startup(function(use)
+ -- use('wbthomason/packer.nvim')
+ -- use("ellisonleao/gruvbox.nvim" )
+ -- use('nvim-treesitter/nvim-treesitter', { run = ':TSUpdate'})
+ -- use('mbbill/undotree')
+ -- use('tpope/vim-fugitive')
+ -- use('tpope/vim-commentary')
+ -- use('preservim/nerdtree')
+ -- use('itchyny/lightline.vim')
+ -- use('SirVer/ultisnips')
+ -- use('jiangmiao/auto-pairs')
+ -- use('itchyny/vim-gitbranch')
+ -- use('habamax/vim-asciidoctor')
+ -- use('inkarkat/vim-SyntaxRange')
+ -- use('hiphish/rainbow-delimiters.nvim')
+ -- use('junegunn/fzf', { run = ':fzf#install()'} )
+ -- use('junegunn/fzf.vim')
+ -- use('rhysd/vim-grammarous')
+ -- use('neovim/nvim-lspconfig')
+ -- use('folke/lazydev.nvim')
+end)
--- /dev/null
+vim.g.mapleader = ","
+
+-- souringing text with _
+vim.keymap.set("v", "s\"", "c\"<C-r>\"\"", {silent = true})
+vim.keymap.set("v", "s'", "c'<C-r>\"'", {silent = true})
+vim.keymap.set("v", "s`", "c`<C-r>\"`", {silent = true})
+vim.keymap.set("v", "s(", "c(<C-r>\")", {silent = true})
+vim.keymap.set("v", "s[", "c[<C-r>\"]", {silent = true})
+vim.keymap.set("v", "s{", "c{<C-r>\"}", {silent = true})
+vim.keymap.set("v", "s*", "c*<C-r>\"*", {silent = true})
+vim.keymap.set("v", "s=", "c=<C-r>\"=", {silent = true})
+vim.keymap.set("v", "s~", "c~<C-r>\"~", {silent = true})
+
+-- insert cursor movement
+vim.keymap.set("i", "<c-b>", "<Esc>O")
+vim.keymap.set("i", "<c-f>", "<Esc>A<Enter>")
+vim.keymap.set("i", "<c-v>", "<Esc>A")
+
+--tabs
+vim.keymap.set("t", "<c-t>N", "<c-w><cmd>tabnew<CR>")
+vim.keymap.set("n", "<c-t>N", "<cmd>tabnew<CR>")
+vim.keymap.set("t", "<c-t>n", "<c-w><cmd>tabnext<CR>")
+vim.keymap.set("t", "<c-t>p", "<c-w><cmd>tabprev<CR>")
+vim.keymap.set("n", "<c-t>n", "<cmd>tabnext<CR>")
+vim.keymap.set("n", "<c-t>p", "<cmd>tabprev<CR>")
+
+vim.keymap.set("n", "<leader>tt", ":TermOpen<cr>")
+
+-- quickfix
+vim.keymap.set("n", "<leader>cc", ":MatchFiles ")
+vim.keymap.set("n", "<leader>co", ":call ToggleQuickfix()<cr>")
+vim.keymap.set("n", "<leader>cn", ":cnext<cr>")
+vim.keymap.set("n", "<leader>cp", ":cprev<cr>")
+
+-- help Termdebug
+vim.keymap.set("n", "<leader>dd", ":Debug ")
+vim.keymap.set("n", "<leader>da", ":Arguments ")
+vim.keymap.set("n", "<leader>dr", ":Run<cr>")
+vim.keymap.set("n", "<leader>db", ":Break<cr>")
+vim.keymap.set("n", "<leader>ds", ":Step<cr>")
+vim.keymap.set("n", "<leader>dc", ":Continue<cr>")
+vim.keymap.set("n", "<leader>de", ":Stop<cr>")
+vim.keymap.set("n", "<leader>df", ":Finish<cr>")
+vim.keymap.set("n", "<leader>de", ":Evaluate<cr>")
+vim.keymap.set("n", "<leader>dn", ":Over<cr>") -- the next command
+
+vim.keymap.set("n", "<leader>dC", ":Clear<cr>")
+vim.keymap.set("n", "<leader>dF", ":Frame ")
+vim.keymap.set("n", "<leader>dU", ":Up ")
+vim.keymap.set("n", "<leader>dD", ":Down ")
+vim.keymap.set("n", "<leader>dS", ":Source<cr>")
+vim.keymap.set("n", "<leader>dA", ":Asm<cr>")
+vim.keymap.set("n", "<leader>dV", ":Var<cr>")
+
+-- LSP
+vim.keymap.set("n", "]g", vim.diagnostic.goto_next)
+
+local match_active = false
+
+vim.keymap.set('n', '<leader>f', function()
+ if match_active then
+ vim.cmd("match none")
+ match_active = false
+ else
+ local word = vim.fn.expand("<cword>")
+ -- We use \V for "very nomagic" to ensure special characters in the word don't break the search
+ vim.cmd("match Search /\\V" .. word .. "/")
+ match_active = true
+ end
+end, { desc = "Toggle highlight for word under cursor" })
+
+
+vim.keymap.set('n', '<leader>F', [[:match Search /]], { desc = "Type pattern to highlight" })
+
+-- save the buffer
+vim.keymap.set("n", "<leader>W", "<cmd>w!<CR>")
+
+-- help registers
+vim.keymap.set("v", "<c-c>", "\"+y | call system('xclip -selection clipboard -i', @0)")
+
+-- run test programs
+-- vim.keymap.set("n", "<leader>rt", ":bel split | set norelativenumber | set nonumber | term runtst %:p:h<CR> | :normal Gi<CR>")
+
+-- quick search and replace
+-- use the dot command in normal mode to replace more matches
+vim.keymap.set("n", "<leader>s", "ye*Ncgn")
+
+-- quick quit window
+vim.keymap.set("n", "<c-w>q", "<cmd>q!<CR>")
+vim.keymap.set("n", "/", "<cmd>set hlsearch<cr>/")
+
+-- turning on and off options
+vim.keymap.set("n", "<c-o>s", "<cmd>set smartcase!<CR><cmd>set smartcase?<CR>")
+vim.keymap.set("n", "<c-o>i", "<cmd>set ignorecase!<cr><cmd>set ignorecase?<cr>")
+vim.keymap.set("n", "<c-o>l", "<cmd>set list!<CR><cmd>set list?<cr>")
+vim.keymap.set("n", "<c-o>h", "<cmd>set hlsearch!<cr><cmd>set hlsearch?<cr>")
+vim.keymap.set("i", "<c-e>", "<esc>:read !")
+
+-- move a block of code as one
+-- vim.keymap.set("v", "J", "<cmd>m '>+1<CR>gv=gv")
+-- vim.keymap.set("v", "K", "<cmd>m '<-2<CR>gv=gv")
+
+-- when going through searches, keep cursor in the middle
+vim.keymap.set("n", "n", "nzzzv")
+vim.keymap.set("n", "N", "Nzzzv")
+
+-- Function to delete all buffers except the current one
+-- -- Function to delete all non-visible buffers
+function deleteNonVisibleBuffers()
+ -- Get all current windows
+ local windows = vim.api.nvim_list_wins()
+ -- Create a set to track visible buffers
+ local visible_bufs = {}
+
+ -- Iterate through each window and collect visible buffers
+ for _, win in ipairs(windows) do
+ local buf = vim.api.nvim_win_get_buf(win)
+ visible_bufs[buf] = true
+ end
+
+ -- Get a list of all buffers
+ local buffers = vim.api.nvim_list_bufs()
+
+ for _, buf in ipairs(buffers) do
+ -- Check if the buffer is not visible
+ if not visible_bufs[buf] then
+ -- Safely delete the buffer; ignore errors
+ pcall(vim.api.nvim_buf_delete, buf, { force = true })
+ end
+ end
+ print("none visible buffers deleted")
+end
+
+-- Map the function to a key combination
+-- Example: <leader>bd to delete non-visible buffers
+vim.api.nvim_set_keymap('n', '<leader>bo', ':lua deleteNonVisibleBuffers()<CR>', { noremap = true, silent = true })
+
+
+-- buffer
+vim.keymap.set("n", "<leader>bp", "<cmd>bp<cr>") -- buffer previous
+vim.keymap.set("n", "<leader>bn", "<cmd>bn<cr>") -- buffer next
+vim.keymap.set("n", "<leader>bc", "<cmd>%bd|e#|bd#<cr>") -- delete all buffers except the current buffer
+vim.keymap.set("n", "<leader>bd", "<cmd>bd<cr>") -- delete current buffer
+vim.keymap.set("n", "<leader>bi", "<cmd>set nobl<cr>") -- don't show this in buffer list
+vim.keymap.set("n", "<leader>bl", "<cmd>ls<cr>") -- list all the buffers
+vim.keymap.set("n", "<leader>bs", ":b ") -- list search for a uffer
+-- doing :b and then tying in a string and then tab will show you a
+-- list of buffers that have the string
+-- ls will show you the list of buffers
+-- bd <number> will delete a buffer by its number
+
+
+-- makes the current file executable and runs the file
+-- vim.keymap.set("n", "<leader>x", "<cmd>python %<cr>")
+-- Function to delete all buffers except the current one
+
+-- Map the function to a key combination
+-- Example: <leader>bd to delete other buffers
+
--- /dev/null
+Subproject commit 566f500485c7a6615a52f98a796a30b40ef0c846
--- /dev/null
+" souringing text with _
+vnoremap s" c"<C-r>""
+vnoremap s' c'<C-r>"'
+vnoremap s` c`<C-r>"`
+vnoremap s( c(<C-r>")
+vnoremap s[ c[<C-r>"]
+vnoremap s{ c{<C-r>"}
+vnoremap s* c*<C-r>"*
+vnoremap s= c=<C-r>"=
+vnoremap s~ c~<C-r>"~
+
+" insert cursor movement
+inoremap <c-b> <Esc>O
+inoremap <c-f> <Esc>A<Enter>
+nnoremap <leader>Dd :call Debug()<CR>
+
+"tab moving
+tmap <silent> <c-t>N <c-w>:tabnew<CR>
+nmap <silent> <c-t>N :tabnew<CR>
+tnoremap <silent> <c-t>n <c-w>:tabnext<CR>
+tnoremap <silent> <c-t>p <c-w>:tabprev<CR>
+nnoremap <silent> <c-t>n :tabnext<CR>
+nnoremap <silent> <c-t>p :tabprev<CR>
+nnoremap <leader>W :w!<CR>
+
+" help registers
+vnoremap <c-c> "+y | call system('xclip -selection clipboard -i', @0)
+
+" run test programs
+nnoremap <leader>rt :bel split \| set norelativenumber \| set nonumber \| term runtst %:p:h<CR> \| :normal Gi<CR>
+
+" quick search and replace
+nnoremap <leader>s ye*Ncgn
+
+" quick save buffer
+nnoremap <leader>W :w!<CR>
+
+" quick quit window
+nnoremap <c-w>q :q!<CR>
+nnoremap / :set hlsearch<cr>/
+
+" tab chaning
+tmap <silent> <c-t>N <c-w>:tabnew<CR>
+nmap <silent> <c-t>N :tabnew<CR>
+tnoremap <silent> <c-t>n <c-w>:tabnext<CR>
+tnoremap <silent> <c-t>p <c-w>:tabprev<CR>
+nnoremap <silent> <c-t>n :tabnext<CR>
+nnoremap <silent> <c-t>p :tabprev<CR>
+
+" how should cases be handled when searching?
+nnoremap <silent> <c-S> :set smartcase!<CR>:set smartcase?<CR>
+nnoremap <silent> <c-I> :set ignorecase!<cr>:set ignorecase?<cr>
+
+" show list (period for spaces, etc)
+nnoremap <leader>l :set list!<CR>
+
+" move a block of code as one
+vnoremap J :m '>+1<CR>gv=gv
+vnoremap K :m '<-2<CR>gv=gv
+
+" when going through searches, keep cursor in the middle
+nnoremap n nzzzv
+nnoremap N Nzzzv
+
+" clear highlights when searching
+" nnoremap <silent> <leader><CR> :g:/\(./\|\n/\)/\@!<CR>:echo "searches cleared"<CR>
+"
+" clear highlights when searching
+nnoremap <silent> <leader>h :set hlsearch!<cr>
+
+" makes the current file executable
+"
+function Execute()
+endfunction
+
+nnoremap <silent> <leader>x :!python %<cr>
--- /dev/null
+vim.keymap.set("n", "<leader>gs", vim.cmd.Git)
--- /dev/null
+vim.keymap.set("n", "<leader>ff", "<cmd>Files<cr>")
+vim.keymap.set("n", "<leader>fg", "<cmd>GFiles<cr>")
+vim.keymap.set("n", "<leader>fb", "<cmd>Buffers<cr>")
+vim.keymap.set("n", "<leader>fh", "<cmd>History<cr>")
+vim.keymap.set("n", "<leader>fc", "<cmd>Commits<cr>")
+vim.keymap.set("n", "<leader>fw", "<cmd>Windows<cr>")
+-- fzf = require('fzf-lua')
+-- vim.keymap.set("n", "<c-k>f", "<cmd>Files<cr>")
+-- vim.keymap.set("n", "<c-k>b", "<cmd>Buffers<cr>")
--- /dev/null
+let g:lightline = {
+ \ 'active': {
+ \ 'left': [ [ 'mode', 'paste' ],
+ \ [ 'gitbranch', 'readonly', 'modified' ] ]
+ \ },
+ \ 'component_function': {
+ \ 'gitbranch': 'gitbranch#name'
+ \ },
+ \ 'colorscheme': 'wombat',
+\ }
--- /dev/null
+-- vim.lsp.enable("clangd")
+-- vim.lsp.enable("lua_ls")
--- /dev/null
+let NERDTreeIgnore = ['\.pyc$', '__pycache__', '.git']
+let g:NERDTreeWinPos = 'right'
+let NERDTreeMinimalUI=1
--- /dev/null
+let g:UltiSnipsExpandTrigger="<tab>"
+let g:UltiSnipsJumpForwardTrigger="<c-j>"
+let g:UltiSnipsJumpBackwardTrigger="<c-k>"
+
+" If you want :UltiSnipsEdit to split your window.
+let g:UltiSnipsEditSplit="horizontal"
+
+nnoremap <silent> <leader>U :UltiSnipsEdit<cr>:resize 10<cr>
--- /dev/null
+nnoremap <leader>u :UndotreeToggle<cr><c-w>h
--- /dev/null
+let g:asciidoctor_fenced_languages = ['python', 'c', 'lua', 'javascript', 'sql', 'bash', 'diff', 'vim', 'asciidoc', 'cpp', 'nasm', 'yaml']
+let g:asciidoctor_folding = 1
+let g:asciidoctor_fold_options = 1
+let g:asciidoctor_syntax_conceal = 1
+let g:asciidoctor_syntax_indented = 0
--- /dev/null
+let g:grammarous#jar_url = 'https://www.languagetool.org/download/LanguageTool-5.9.zip'
+nnoremap <leader>G GrammarousCheck<cr>