Skip to content
Closed
5 changes: 5 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
repos:
- repo: https://github.com/gitleaks/gitleaks
rev: v8.24.2
hooks:
- id: gitleaks
22 changes: 12 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,18 +27,19 @@ External Requirements:
- Clipboard tool (xclip/xsel/win32yank or other depending on the platform)
- A [Nerd Font](https://www.nerdfonts.com/): optional, provides various icons
- if you have it set `vim.g.have_nerd_font` in `init.lua` to true
- Emoji fonts (Ubuntu only, and only if you want emoji!) `sudo apt install fonts-noto-color-emoji`
- Language Setup:
- If you want to write Typescript, you need `npm`
- If you want to write Golang, you will need `go`
- etc.

> **NOTE**
> [!NOTE]
> See [Install Recipes](#Install-Recipes) for additional Windows and Linux specific notes
> and quick install snippets

### Install Kickstart

> **NOTE**
> [!NOTE]
> [Backup](#FAQ) your previous configuration (if any exists)

Neovim's configurations are located under the following paths, depending on your OS:
Expand All @@ -55,7 +56,7 @@ Neovim's configurations are located under the following paths, depending on your
so that you have your own copy that you can modify, then install by cloning the
fork to your machine using one of the commands below, depending on your OS.

> **NOTE**
> [!NOTE]
> Your fork's URL will be something like this:
> `https://github.com/<your_github_username>/kickstart.nvim.git`

Expand All @@ -64,7 +65,8 @@ too - it's ignored in the kickstart repo to make maintenance easier, but it's
[recommended to track it in version control](https://lazy.folke.io/usage/lockfile).

#### Clone kickstart.nvim
> **NOTE**

> [!NOTE]
> If following the recommended step above (i.e., forking the repo), replace
> `nvim-lua` with `<your_github_username>` in the commands below

Expand Down Expand Up @@ -212,14 +214,14 @@ sudo apt update
sudo apt install make gcc ripgrep unzip git xclip curl

# Now we install nvim
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux64.tar.gz
sudo rm -rf /opt/nvim-linux64
sudo mkdir -p /opt/nvim-linux64
sudo chmod a+rX /opt/nvim-linux64
sudo tar -C /opt -xzf nvim-linux64.tar.gz
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.tar.gz
sudo rm -rf /opt/nvim-linux-x86_64
sudo mkdir -p /opt/nvim-linux-x86_64
sudo chmod a+rX /opt/nvim-linux-x86_64
sudo tar -C /opt -xzf nvim-linux-x86_64.tar.gz

# make it available in /usr/local/bin, distro installs to /usr/bin
sudo ln -sf /opt/nvim-linux64/bin/nvim /usr/local/bin/
sudo ln -sf /opt/nvim-linux-x86_64/bin/nvim /usr/local/bin/
```
</details>
<details><summary>Fedora Install Steps</summary>
Expand Down
549 changes: 260 additions & 289 deletions init.lua

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions lua/custom/plugins/better-escape.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
return {
'nvim-zh/better-escape.vim',
}
8 changes: 8 additions & 0 deletions lua/custom/plugins/code_companion.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
return {
'olimorris/codecompanion.nvim',
opts = {},
dependencies = {
'nvim-lua/plenary.nvim',
'nvim-treesitter/nvim-treesitter',
},
}
27 changes: 27 additions & 0 deletions lua/custom/plugins/copilot.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
return {
{
'CopilotC-Nvim/CopilotChat.nvim',
dependencies = {
{ 'github/copilot.vim' }, -- or zbirenbaum/copilot.lua
{ 'nvim-lua/plenary.nvim', branch = 'master' }, -- for curl, log and async functions
},
build = 'make tiktoken', -- Only on MacOS or Linux
opts = {
-- See Configuration section for options
prompts = {
WriteAtomic = {
system_prompt = 'You are a seasoned and experienced Editor. You job is to assist a budding writer and researcher with writing at a higher level.',
prompt = 'Please review the following Atomic Note. I want you to analyse it and provide me with feedback. Do not rewrite it. I want to keep my tone and style of writing. I just want to know where I can improve the quality of my writing. A bonus would be to identify any potential biases or gaps in the content which I can focus on adding or improving. But most important is to identify any deficiencies and strengths in the writing. Use the buffer for context: #buffer',
mapping = '<leader>apwa',
description = 'Copilot: Write Atomic Note',
},
-- You can add more prompts here
},
},
config = function(_, opts)
require('CopilotChat').setup(opts)
vim.api.nvim_set_keymap('n', '<leader>ac', ':CopilotChat<CR>', { noremap = true, silent = true })
end,
-- See Commands section for default commands if you want to lazy load on them
},
}
23 changes: 23 additions & 0 deletions lua/custom/plugins/diffview.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
return {
-- Git diff viewer
{
'sindrets/diffview.nvim',
dependencies = { 'nvim-lua/plenary.nvim' },
config = function()
require('diffview').setup {
enhanced_diff_hl = true, -- Highlight word differences within lines
view = {
default = {
layout = 'diff2_horizontal', -- Options: diff2_horizontal, diff2_vertical, diff3_horizontal, diff3_vertical
},
},
file_panel = {
win_config = {
position = 'left', -- Can be "left", "right", "top", "bottom"
width = 35,
},
},
}
end,
},
}
9 changes: 9 additions & 0 deletions lua/custom/plugins/flutter-tools.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
return {
'nvim-flutter/flutter-tools.nvim',
lazy = false,
dependencies = {
'nvim-lua/plenary.nvim',
'stevearc/dressing.nvim', -- optional for vim.ui.select
},
config = true,
}
3 changes: 3 additions & 0 deletions lua/custom/plugins/golf.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
return {
{ 'vuciv/golf' },
}
16 changes: 16 additions & 0 deletions lua/custom/plugins/neotest.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
return {
'nvim-neotest/neotest',
dependencies = {
'nvim-neotest/nvim-nio',
'nvim-lua/plenary.nvim',
'antoinemadec/FixCursorHold.nvim',
'nvim-treesitter/nvim-treesitter',
},
config = function()
require('neotest').setup {
adapters = {
require 'rustaceanvim.neotest',
},
}
end,
}
35 changes: 35 additions & 0 deletions lua/custom/plugins/noice.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
return {
'folke/noice.nvim',
event = 'VeryLazy',
opts = {
-- add any options here
},
dependencies = {
-- if you lazy-load any plugin below, make sure to add proper `module="..."` entries
'MunifTanjim/nui.nvim',
-- OPTIONAL:
-- `nvim-notify` is only needed, if you want to use the notification view.
-- If not available, we use `mini` as the fallback
'rcarriga/nvim-notify',
},
config = function(_, opts)
require('noice').setup {
lsp = {
-- override markdown rendering so that **cmp** and other plugins use **Treesitter**
override = {
['vim.lsp.util.convert_input_to_markdown_lines'] = true,
['vim.lsp.util.stylize_markdown'] = true,
['cmp.entry.get_documentation'] = true, -- requires hrsh7th/nvim-cmp
},
},
-- you can enable a preset for easier configuration
presets = {
bottom_search = true, -- use a classic bottom cmdline for search
command_palette = true, -- position the cmdline and popupmenu together
long_message_to_split = true, -- long messages will be sent to a split
inc_rename = false, -- enables an input dialog for inc-rename.nvim
lsp_doc_border = false, -- add a border to hover docs and signature help
},
}
end,
}
18 changes: 18 additions & 0 deletions lua/custom/plugins/note2cal.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
return {
'lfilho/note2cal.nvim',
config = function()
require('note2cal').setup {
debug = false, -- if true, prints a debug message an return early (won't schedule events)
calendar_name = 'Calendar', -- the name of the calendar as it appear on Calendar.app
highlights = {
at_symbol = 'WarningMsg', -- the highlight group for the "@" symbol
at_text = 'Number', -- the highlight group for the date-time part
},
keymaps = {
normal = '<Leader>se', -- mnemonic: Schedule Event
visual = '<Leader>se', -- mnemonic: Schedule Event
},
}
end,
ft = 'markdown',
}
14 changes: 14 additions & 0 deletions lua/custom/plugins/nvim_bacon.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
return {
-- other plugins
{
'Canop/nvim-bacon',
config = function()
require('bacon').setup {
quickfix = {
enabled = true, -- Enable Quickfix integration
event_trigger = true, -- Trigger QuickFixCmdPost after populating Quickfix list
},
}
end,
},
}
32 changes: 32 additions & 0 deletions lua/custom/plugins/obsidian.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
return {
'obsidian-nvim/obsidian.nvim',
version = '*', -- recommended, use latest release instead of latest commit
lazy = true,
ft = 'markdown',
-- Replace the above line with this if you only want to load obsidian.nvim for markdown files in your vault:
-- event = {
-- -- If you want to use the home shortcut '~' here you need to call 'vim.fn.expand'.
-- -- E.g. "BufReadPre " .. vim.fn.expand "~" .. "/my-vault/*.md"
-- -- refer to `:h file-pattern` for more examples
-- "BufReadPre path/to/my-vault/*.md",
-- "BufNewFile path/to/my-vault/*.md",
-- },
dependencies = {
-- Required.
'nvim-lua/plenary.nvim',

-- see below for full list of optional dependencies 👇
},
opts = {
workspaces = {
{
name = 'nts',
path = '~/nts',
},
},

checkbox = {
order = { ' ', 'x', '~', '!', '>' },
},
},
}
18 changes: 18 additions & 0 deletions lua/custom/plugins/oil.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
vim.keymap.set('n', '-', '<CMD>Oil<CR>', { desc = 'Open Oil file explorer' })

return {
'stevearc/oil.nvim',
---@module 'oil'
---@type oil.SetupOpts
opts = {
view_options = {
-- Show hidden files
show_hidden = true,
},
},
-- Optional dependencies
dependencies = { { 'echasnovski/mini.icons', opts = {} } },
-- dependencies = { "nvim-tree/nvim-web-devicons" }, -- use if you prefer nvim-web-devicons
-- Lazy loading is not recommended because it is very tricky to make it work correctly in all situations.
lazy = false,
}
7 changes: 7 additions & 0 deletions lua/custom/plugins/pencil.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
return {
'preservim/vim-pencil',
init = function()
vim.g['pencil#wrapModeDefault'] = 'soft'
vim.g['pencil#conceallevel'] = 2
end,
}
29 changes: 29 additions & 0 deletions lua/custom/plugins/pomo.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
return {
'epwalsh/pomo.nvim',
version = '*', -- Recommended, use latest release instead of latest commit
lazy = true,
cmd = { 'TimerStart', 'TimerRepeat', 'TimerSession' },
dependencies = {
-- Optional, but highly recommended if you want to use the "Default" timer
'rcarriga/nvim-notify',
},
opts = {
-- See below for full list of options 👇
sessions = {
norm = {
{ name = 'Work', duration = '24m30s' },
{ name = 'Status', duration = '30s' },
{ name = 'Short Break', duration = '5m' },
{ name = 'Work', duration = '24m30s' },
{ name = 'Status', duration = '30s' },
{ name = 'Short Break', duration = '5m' },
{ name = 'Work', duration = '24m30s' },
{ name = 'Status', duration = '30s' },
{ name = 'Short Break', duration = '5m' },
{ name = 'Work', duration = '24m30s' },
{ name = 'Status', duration = '30s' },
{ name = 'Long Break', duration = '15m' },
},
},
},
}
10 changes: 10 additions & 0 deletions lua/custom/plugins/quickscope.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
return {
'unblevable/quick-scope',
event = { 'VimEnter' }, -- Load plugin on VimEnter event
config = function()
-- Enable QuickScope highlighting
vim.cmd [[
let g:qs_highlight_on_keys = ['f', 'F', 't', 'T']
]]
end,
}
43 changes: 43 additions & 0 deletions lua/custom/plugins/rustaceanvim.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
return {
'mrcjkb/rustaceanvim',
version = '^6', -- Recommended
lazy = false, -- This plugin is already lazy
dependencies = { 'nvim-neotest/neotest' },
config = function()
vim.g.rustaceanvim = {
server = {
settings = {
['rust-analyzer'] = {
check = {
command = 'clippy',
extra_args = {
'--',
'-W',
'clippy::pedantic',
'-W',
'clippy::unwrap_used',
'-W',
'clippy::expect_used',
'-W',
'clippy::panic',
'-W',
'clippy::exit',
'-W',
'clippy::todo',
'-W',
'clippy::unimplemented',
'-W',
'clippy::dbg_macro',
'-A',
'clippy::module_name_repetitions',
},
},
rustfmt = {
extraArgs = { '+nightly' },
},
},
},
},
}
end,
}
4 changes: 4 additions & 0 deletions lua/custom/plugins/smear_cursor.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
return {
'sphamba/smear-cursor.nvim',
opts = {},
}
Loading
Loading