Compare commits

..

5 Commits

Author SHA1 Message Date
29e65ee8b1
feat(color)!: Add theme.sh detection
Add support for checking if `theme.sh` is installed and if so attempt to
choose a matching theme colour.
Marked as breaking as this is untested outside of my environment
2023-05-05 19:14:42 +01:00
d249c8c9c6
chore(plugins): neaten plugins
ensure style is somewhat consistent
2023-05-05 19:13:51 +01:00
6677e197e9
feat(treesitter): Change to new rainbow
Change to new rainbow plugin, also make config more robust to plugin
issues.
2023-05-05 19:12:41 +01:00
73f9fd1526
chore(treesitter): clean up treesitter
neaten up the treesitter code. superficial change
2023-05-05 19:10:41 +01:00
e1f5370ce6
chore(luarc): add luarc
Add luarc,
This is entirely to fix a dumb issue where lua-ls seems to detect 3rd
party libs that doesn't exits properly
2023-05-05 19:06:46 +01:00
4 changed files with 118 additions and 15 deletions

3
.luarc.json Normal file
View File

@ -0,0 +1,3 @@
{
"workspace.checkThirdParty": false
}

View File

@ -3,5 +3,28 @@ if not ok then
return return
end end
-- default colourscheme settings
vim.o.background = "dark" vim.o.background = "dark"
vim.cmd.colorscheme('gruvbox') vim.cmd.colorscheme('gruvbox')
local function invertTheme()
if vim.o.background == "dark" then
vim.o.background = "light"
else
vim.o.background = "dark"
end
end
vim.keymap.set('n','<leader>i',invertTheme,{desc='Invert colourscheme'})
if vim.fn.executable('theme.sh') and vim.fn.exists('~/.config/.theme_history') then
local currentTheme = vim.fn.system('theme.sh -l | tail -n1', 'silent'):gsub('\n','')
local lightThemes = vim.fn.systemlist('theme.sh --light -l')
if vim.tbl_contains(lightThemes,currentTheme) then
vim.o.background = "light"
else
vim.o.background = "dark"
end
end

View File

@ -1,30 +1,25 @@
if not pcall(require, 'nvim-treesitter') then local ok = pcall(require, 'nvim-treesitter')
if not ok then
return return
end end
require('nvim-treesitter.configs').setup { local config = {
ensure_installed = {
ensure_installed = { "c",
"c", "cpp",
"cpp",
"c_sharp", "c_sharp",
"markdown", "markdown",
"latex", "latex",
"go", "go",
"rust" "rust"
}, },
sync_install = false, sync_install = false,
highlight = { highlight = {
enable = true, enable = true,
}, },
rainbow = {
enable = true,
extended_mode = true,
max_file_lines = nil
},
incremental_selection = { incremental_selection = {
enable = true, enable = true,
keymaps = { keymaps = {
@ -35,3 +30,85 @@ require('nvim-treesitter.configs').setup {
} }
} }
} }
---@diagnostic disable-next-line: redefined-local -- Readability/conciseness over correctness.
local ok, ts_rainbow = pcall(require, 'ts-rainbow')
if ok then
local rainbow = {
enable = true,
query = {
'rainbow-parens',
html = 'rainbow-tags',
latex = 'rainbow-blocks'
},
strategy = ts_rainbow.strategy.global
}
config.rainbow = rainbow
end
if pcall(require,'nvim-treesitter-textobjects') then
local textobjects = {
select = {
enable = true,
lookahead = true,
keymaps = {
["af"] = { query = "@function.outer", desc = "Select outer part of function"},
["if"] = { query = "@function.inner", desc = "Select inner part of function"},
["ac"] = { query = "@class.outer" , desc = "Select outer part of class"},
["ic"] = { query = "@class.inner" , desc = "Select inner part of class"}
}
},
move = {
enable = true,
set_jumps = true,
goto_next_start = {
["]m"] = { query = "@function.outer", desc = "Next Function start"},
["]]"] = { query = "@class.outer", desc = "Next class start"},
["]o"] = { query = "@loop.*", desc = "Next loop component"},
["]z"] = { query = "@fold", query_group = "folds" , desc = "Next Fold"}
},
goto_next_end = {
["]M"] = { query = "@function.outer", desc = "Next Function end"},
["]["] = { query = "@class.outer", desc = "Next class end"},
},
goto_previous_start = {
["[m"] = { query = "@function.outer", desc = "Previous Function start"},
["[]"] = { query = "@class.outer", desc = "Previous class start"},
["[o"] = { query = "@loop.*", desc = "Previous loop component"},
["[z"] = { query = "@fold", query_group = "folds" , desc = "Previous Fold"}
},
goto_previous_end = {
["[M"] = { query = "@function.outer", desc = "Previous Function end"},
["[["] = { query = "@class.outer", desc = "Previous class end"},
},
goto_next = {
["]d"] = { query = "@conditional.*", desc = "Next Conditional"}
},
goto_previous = {
["[d"] = { query = "@conditional.*", desc = "previous Conditional"}
}
},
lsp_interop = {
enable = true,
border = 'none',
floating_preview_opts = {},
peek_definition_code = {
["<leader>df"] = { query = "@function.outer", desc = "Peek function definition"},
["<leader>dF"] = { query = "@class.outer", desc = "Peek class definition"}
}
}
}
config.textobjects = textobjects
end
require('nvim-treesitter.configs').setup(config)

View File

@ -101,7 +101,7 @@ return require('packer').startup(function(use)
use {'nvim-treesitter/nvim-treesitter', use {'nvim-treesitter/nvim-treesitter',
run = ':TSUpdate' run = ':TSUpdate'
} }
use {'p00f/nvim-ts-rainbow', use {'HiPhish/nvim-ts-rainbow2',
requires = 'nvim-treesitter/nvim-treesitter'} requires = 'nvim-treesitter/nvim-treesitter'}
use {'nvim-treesitter/nvim-treesitter-textobjects', use {'nvim-treesitter/nvim-treesitter-textobjects',
requires = 'nvim-treesitter/nvim-treesitter'} requires = 'nvim-treesitter/nvim-treesitter'}
@ -138,7 +138,7 @@ return require('packer').startup(function(use)
} }
-- Language / Project specific -- Language / Project specific
use 'folke/neodev.nvim' use {'folke/neodev.nvim'}
if Packer_bootstapping then if Packer_bootstapping then
require('packer').sync() -- install plugins on first run require('packer').sync() -- install plugins on first run