rewrite in fennel, second cour
This commit is contained in:
parent
469ebea279
commit
2afcf3205b
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1 +1,2 @@
|
|||
lua/
|
||||
lazy-lock.json
|
||||
|
|
|
@ -1,18 +0,0 @@
|
|||
(local harpoon (require :harpoon))
|
||||
|
||||
;; REQUIRED
|
||||
(harpoon.setup)
|
||||
;; REQUIRED
|
||||
|
||||
(vim.keymap.set :n :<leader>ha (fn [] (harpoon.list:append)))
|
||||
|
||||
(vim.keymap.set :n :<C-e> (fn [] (harpoon.ui.toggle_quick_menu (harpoon.list))))
|
||||
|
||||
(vim.keymap.set :n :<C-h> (fn [] (harpoon.list:select 1)))
|
||||
(vim.keymap.set :n :<C-t> (fn [] (harpoon.list:select 2)))
|
||||
(vim.keymap.set :n :<C-n> (fn [] (harpoon.list:select 3)))
|
||||
(vim.keymap.set :n :<C-s> (fn [] (harpoon.list:select 4)))
|
||||
|
||||
;; Toggle previous & next buffers stored within Harpoon list
|
||||
(vim.keymap.set :n :<C-S-P> (fn [] (harpoon.list:prev)))
|
||||
(vim.keymap.set :n :<C-S-N> (fn [] (harpoon.list:next)))
|
|
@ -1,4 +1,6 @@
|
|||
(require :options.colors)
|
||||
(require :options.keybind)
|
||||
(require :options.opts)
|
||||
(require :options.harpoon)
|
||||
(local dir :options.)
|
||||
(fn modul [name] (.. dir name))
|
||||
|
||||
(require (modul :colors))
|
||||
(require (modul :keybind))
|
||||
(require (modul :opts))
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
(map! [n :noremap] :<leader>tw "<cmd>lua MiniTrailspace.trim()<CR>")
|
||||
|
||||
(map! [n :noremap] :<leader>fo "<cmd>Oil<CR>")
|
||||
(map! [n :noremap] :<leader>ff "<cmd>Telescope find_files<CR>")
|
||||
(map! [n :noremap] :<leader>fs "<cmd>Telescope current_buffer_fuzzy_find<CR>")
|
||||
(map! [n :noremap] :<leader>gs "<cmd>Telescope git_status<CR>")
|
||||
|
@ -32,5 +33,5 @@
|
|||
|
||||
(map! [x :noremap] :p (fn [] [:_dP]))
|
||||
(map! [x :noremap] :<leader>p (fn [] [:+dP]))
|
||||
(map! [n :noremap] :<leader>s (fn [] ":%s/\\<<C-r><C-w>\\>/<C-r><C-w>/gI<Left><Left><Left>"))
|
||||
(map! [n :noremap] :<leader>s ":%s/\\<<C-r><C-w>\\>/<C-r><C-w>/gI<Left><Left><Left>")
|
||||
(map! [nv :noremap] :<leader>d (fn [] [:_d]))
|
||||
|
|
|
@ -9,12 +9,12 @@
|
|||
(set! list true) ; display listchars
|
||||
(set! smartindent true) ; smarter indentation
|
||||
(set! splitright true) ; split right instead of left
|
||||
(set! splitkeep "screen") ; stabilize split
|
||||
(set! splitkeep :screen) ; stabilize split
|
||||
(set! startofline false) ; don't go to the start of the line when moving to another file
|
||||
(set! swapfile false) ; disable swapfile
|
||||
(set! termguicolors true) ; true colours for better experience
|
||||
(set! wrap false) ; don't wrap lines
|
||||
(set! backupcopy "yes") ; fix weirdness for stuff that replaces the entire file when hot reloading
|
||||
(set! backupcopy :yes) ; fix weirdness for stuff that replaces the entire file when hot reloading
|
||||
|
||||
(set! smarttab false)
|
||||
(set! tabstop 4)
|
||||
|
@ -25,41 +25,15 @@
|
|||
(set! showmatch true) ; show matches while searching for text
|
||||
(set! hlsearch true) ; highlight text that has been searched
|
||||
(set! incsearch true) ; incramentally search
|
||||
(set! shiftwidth 4)
|
||||
(set! autoindent true)
|
||||
(set! wildmode "longest,list")
|
||||
(set! mouse "v")
|
||||
(set! mouse "a")
|
||||
(set! clipboard "unnamedplus") ; use system clipboard)
|
||||
(set! mouse :v)
|
||||
(set! mouse :a)
|
||||
(set! clipboard :unnamedplus) ; use system clipboard
|
||||
(set! ttyfast true)
|
||||
(set! cursorline true)
|
||||
(set! splitbelow true)
|
||||
(set! autochdir true)
|
||||
(set! signcolumn "yes:1")
|
||||
(set! shell "/bin/zsh")
|
||||
(set! signcolumn :yes:1)
|
||||
(set! shell :/bin/zsh)
|
||||
(set! splitright false)
|
||||
|
||||
; disable builtin plugins as they are not needed
|
||||
(local disabled_built_ins [
|
||||
:netrw
|
||||
:netrwPlugin
|
||||
:netrwSettings
|
||||
:netrwFileHandlers
|
||||
:gzip
|
||||
:zip
|
||||
:zipPlugin
|
||||
:tar
|
||||
:tarPlugin
|
||||
:getscript
|
||||
:getscriptPlugin
|
||||
:vimball
|
||||
:vimballPlugin
|
||||
:2html_plugin
|
||||
:logipat
|
||||
:rrhelper
|
||||
:spellfile_plugin
|
||||
:matchit
|
||||
])
|
||||
|
||||
(each [_ plugin (pairs disabled_built_ins)]
|
||||
(tset vim.g (.. :loaded_ plugin) 1))
|
||||
|
|
33
fnl/plugins/devicons.fnl
Executable file
33
fnl/plugins/devicons.fnl
Executable file
|
@ -0,0 +1,33 @@
|
|||
(local plug (require :nvim-web-devicons))
|
||||
|
||||
(plug.setup [
|
||||
:strict true
|
||||
:default true
|
||||
:color_icons true
|
||||
|
||||
:override [
|
||||
:zsh [
|
||||
:icon ""
|
||||
:color "#428850"
|
||||
:cterm_color "65"
|
||||
:name "zsh"
|
||||
]
|
||||
]
|
||||
|
||||
:override_by_filename [
|
||||
:.gitignore [
|
||||
:icon ""
|
||||
:color "#f1502f"
|
||||
:name "gitignore"
|
||||
]
|
||||
]
|
||||
|
||||
:override_by_extension [
|
||||
:log [
|
||||
:icon ""
|
||||
:color "#81e043"
|
||||
:name "Log"
|
||||
]
|
||||
]
|
||||
|
||||
])
|
|
@ -1,47 +0,0 @@
|
|||
require'nvim-web-devicons'.setup {
|
||||
-- your personnal icons can go here (to override)
|
||||
-- you can specify color or cterm_color instead of specifying both of them
|
||||
-- DevIcon will be appended to `name`
|
||||
override = {
|
||||
zsh = {
|
||||
icon = "",
|
||||
color = "#428850",
|
||||
cterm_color = "65",
|
||||
name = "Zsh"
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
-- globally enable different highlight colors per icon (default to true)
|
||||
-- if set to false all icons will have the default icon's color
|
||||
color_icons = true;
|
||||
|
||||
-- globally enable default icons (default to false)
|
||||
-- will get overriden by `get_icons` option
|
||||
default = true;
|
||||
|
||||
-- globally enable "strict" selection of icons - icon will be looked up in
|
||||
-- different tables, first by filename, and if not found by extension; this
|
||||
-- prevents cases when file doesn't have any extension but still gets some icon
|
||||
-- because its name happened to match some extension (default to false)
|
||||
strict = true;
|
||||
|
||||
-- same as `override` but specifically for overrides by filename
|
||||
-- takes effect when `strict` is true
|
||||
override_by_filename = {
|
||||
[".gitignore"] = {
|
||||
icon = "",
|
||||
color = "#f1502f",
|
||||
name = "Gitignore"
|
||||
}
|
||||
};
|
||||
-- same as `override` but specifically for overrides by extension
|
||||
-- takes effect when `strict` is true
|
||||
override_by_extension = {
|
||||
["log"] = {
|
||||
icon = "",
|
||||
color = "#81e043",
|
||||
name = "Log"
|
||||
}
|
||||
};
|
||||
}
|
46
fnl/plugins/gitsigns.fnl
Executable file
46
fnl/plugins/gitsigns.fnl
Executable file
|
@ -0,0 +1,46 @@
|
|||
(local gitsigns (require :gitsigns))
|
||||
|
||||
(gitsigns.setup {
|
||||
:signs {
|
||||
:add [:text :▍]
|
||||
:change [:text :▍]
|
||||
:delete [:text :▍]
|
||||
:topdelete [:text :▍]
|
||||
:changedelete [:text :▍]
|
||||
:untracked [:text :▍]
|
||||
}
|
||||
|
||||
:signcolumn true
|
||||
:numhl false
|
||||
:linehl false
|
||||
:word_diff false
|
||||
|
||||
:watch_gitdir {
|
||||
:follow_files true
|
||||
}
|
||||
|
||||
|
||||
:attach_to_untracked true
|
||||
:current_line_blame false
|
||||
|
||||
:current_line_blame_opts {
|
||||
:virt_text true
|
||||
:virt_text_pos :eol
|
||||
:delay 1000
|
||||
:ignore_whitespace false
|
||||
}
|
||||
|
||||
:current_line_blame_formatter "<author>, <author_time:%Y-%m-%d> - <summary>"
|
||||
:sign_priority 6
|
||||
:update_debounce 100
|
||||
:status_formatter nil
|
||||
:max_file_length 40000
|
||||
|
||||
:preview_config {
|
||||
:border :single
|
||||
:style :minimal
|
||||
:relative :cursor
|
||||
:row 0
|
||||
:col 1
|
||||
}
|
||||
})
|
|
@ -1,45 +0,0 @@
|
|||
require('gitsigns').setup {
|
||||
signs = {
|
||||
add = { text = '▍' },
|
||||
change = { text = '▍' },
|
||||
delete = { text = '▍' },
|
||||
topdelete = { text = '▍' },
|
||||
changedelete = { text = '▍' },
|
||||
untracked = { text = '▎' },
|
||||
},
|
||||
|
||||
signcolumn = true, -- Toggle with `:Gitsigns toggle_signs`
|
||||
numhl = false, -- Toggle with `:Gitsigns toggle_numhl`
|
||||
linehl = false, -- Toggle with `:Gitsigns toggle_linehl`
|
||||
word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff`
|
||||
|
||||
watch_gitdir = {
|
||||
follow_files = true
|
||||
},
|
||||
|
||||
attach_to_untracked = true,
|
||||
current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame`
|
||||
|
||||
current_line_blame_opts = {
|
||||
virt_text = true,
|
||||
virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align'
|
||||
delay = 1000,
|
||||
ignore_whitespace = false,
|
||||
},
|
||||
|
||||
current_line_blame_formatter = '<author>, <author_time:%Y-%m-%d> - <summary>',
|
||||
sign_priority = 6,
|
||||
update_debounce = 100,
|
||||
status_formatter = nil, -- Use default
|
||||
max_file_length = 40000, -- Disable if file is longer than this (in lines)
|
||||
|
||||
preview_config = {
|
||||
-- Options passed to nvim_open_win
|
||||
border = 'single',
|
||||
style = 'minimal',
|
||||
relative = 'cursor',
|
||||
row = 0,
|
||||
col = 1
|
||||
},
|
||||
|
||||
}
|
18
fnl/plugins/harpoon.fnl
Normal file
18
fnl/plugins/harpoon.fnl
Normal file
|
@ -0,0 +1,18 @@
|
|||
(import-macros {: map!} :hibiscus.vim)
|
||||
|
||||
(local harpoon (require :harpoon))
|
||||
(harpoon.setup)
|
||||
|
||||
(map! [n :noremap] :<leader>ha (fn [] (harpoon.list:append)))
|
||||
|
||||
(map! [n :noremap] :<C-e> (fn [] (harpoon.ui.toggle_quick_menu (harpoon.list))))
|
||||
|
||||
(map! [n :noremap] :<C-h> (fn [] (harpoon.list:select 1)))
|
||||
(map! [n :noremap] :<C-t> (fn [] (harpoon.list:select 2)))
|
||||
(map! [n :noremap] :<C-n> (fn [] (harpoon.list:select 3)))
|
||||
(map! [n :noremap] :<C-s> (fn [] (harpoon.list:select 4)))
|
||||
|
||||
;; Toggle previous & next buffers stored within Harpoon list
|
||||
(map! [n :noremap] :<C-S-P> (fn [] (harpoon.list:prev)))
|
||||
(map! [n :noremap] :<C-S-N> (fn [] (harpoon.list:next)))
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
local harpoon = require("harpoon")
|
||||
|
||||
-- REQUIRED
|
||||
harpoon:setup()
|
||||
-- REQUIRED
|
||||
|
||||
vim.keymap.set("n", "<leader>a", function() harpoon:list():append() end)
|
||||
vim.keymap.set("n", "<C-e>", function() harpoon.ui:toggle_quick_menu(harpoon:list()) end)
|
||||
|
||||
vim.keymap.set("n", "<C-h>", function() harpoon:list():select(1) end)
|
||||
vim.keymap.set("n", "<C-t>", function() harpoon:list():select(2) end)
|
||||
vim.keymap.set("n", "<C-n>", function() harpoon:list():select(3) end)
|
||||
vim.keymap.set("n", "<C-s>", function() harpoon:list():select(4) end)
|
||||
|
||||
-- Toggle previous & next buffers stored within Harpoon list
|
||||
vim.keymap.set("n", "<C-S-P>", function() harpoon:list():prev() end)
|
||||
vim.keymap.set("n", "<C-S-N>", function() harpoon:list():next() end)
|
39
fnl/plugins/hlblocks.fnl
Executable file
39
fnl/plugins/hlblocks.fnl
Executable file
|
@ -0,0 +1,39 @@
|
|||
(local hlchunk (require :hlchunk))
|
||||
|
||||
(hlchunk.setup {
|
||||
:indent {
|
||||
:chars { "." "." "." "." }
|
||||
|
||||
:style {
|
||||
:#888888
|
||||
:#666666
|
||||
:#444444
|
||||
:#333333
|
||||
:#333333
|
||||
:#333333
|
||||
:#333333
|
||||
:#333333
|
||||
}
|
||||
}
|
||||
|
||||
:blank {
|
||||
:enable false
|
||||
}
|
||||
|
||||
:chunk {
|
||||
:chars {
|
||||
:horizontal_line ""
|
||||
:vertical_line ""
|
||||
:left_top ""
|
||||
:left_bottom ""
|
||||
:right_arrow ""
|
||||
}
|
||||
|
||||
:style :#FF7F00
|
||||
}
|
||||
|
||||
:line_num {
|
||||
:style :#FFFFFF
|
||||
}
|
||||
|
||||
})
|
|
@ -1,39 +0,0 @@
|
|||
require('hlchunk').setup({
|
||||
indent = {
|
||||
chars = { "·", "·", "·", "·", },
|
||||
--chars = { "│", "¦", "┆", "┊", }, -- more code can be found in https://unicodeplus.com/
|
||||
|
||||
style = {
|
||||
"#888888",
|
||||
"#666666",
|
||||
"#444444",
|
||||
"#333333",
|
||||
"#333333",
|
||||
"#333333",
|
||||
"#333333",
|
||||
"#333333",
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
|
||||
blank = {
|
||||
enable = false,
|
||||
},
|
||||
|
||||
chunk = {
|
||||
chars = {
|
||||
horizontal_line = "",
|
||||
vertical_line = "",
|
||||
left_top = "",
|
||||
left_bottom = "",
|
||||
right_arrow = "",
|
||||
},
|
||||
style = "#FF7F00",
|
||||
},
|
||||
|
||||
line_num = {
|
||||
style = "#FFFFFF",
|
||||
},
|
||||
|
||||
})
|
15
fnl/plugins/init.fnl
Executable file
15
fnl/plugins/init.fnl
Executable file
|
@ -0,0 +1,15 @@
|
|||
(local dir :plugins.)
|
||||
(fn modul [name] (.. dir name))
|
||||
|
||||
(require (modul :lazy))
|
||||
(require (modul :devicons))
|
||||
(require (modul :gitsigns))
|
||||
(require (modul :harpoon))
|
||||
(require (modul :hlblocks))
|
||||
(require (modul :lsp-zero))
|
||||
(require (modul :lualine))
|
||||
(require (modul :mini))
|
||||
(require (modul :oil))
|
||||
(require (modul :telescope))
|
||||
(require (modul :treesitter))
|
||||
(require (modul :wilder))
|
|
@ -1,12 +0,0 @@
|
|||
require("plugins.lazy")
|
||||
require("plugins.devicons")
|
||||
require("plugins.gitsigns")
|
||||
require("plugins.harpoon")
|
||||
require("plugins.hlblocks")
|
||||
require("plugins.lsp-zero")
|
||||
require("plugins.lualine")
|
||||
require("plugins.mini")
|
||||
require("plugins.oil")
|
||||
require("plugins.telescope")
|
||||
require("plugins.treesitter")
|
||||
require("plugins.wilder")
|
91
fnl/plugins/lazy.fnl
Executable file
91
fnl/plugins/lazy.fnl
Executable file
|
@ -0,0 +1,91 @@
|
|||
(local lazypath (.. (vim.fn.stdpath :data) :/lazy/lazy.nvim))
|
||||
|
||||
(if (not (vim.loop.fs_stat lazypath))
|
||||
(vim.fn.system
|
||||
[:git :clone :--filter=blob:none :https://github.com/folke/lazy.nvim.git :--branch=stable lazypath]))
|
||||
|
||||
(vim.opt.rtp:prepend lazypath)
|
||||
|
||||
(local lazy (require :lazy))
|
||||
(local plug 1)
|
||||
(local opt 1)
|
||||
|
||||
(lazy.setup [
|
||||
:EdenEast/nightfox.nvim
|
||||
:lambdalisue/nerdfont.vim
|
||||
:gelguy/wilder.nvim
|
||||
|
||||
:bkad/camelcasemotion
|
||||
:lewis6991/gitsigns.nvim
|
||||
|
||||
{
|
||||
plug :stevearc/oil.nvim
|
||||
:dependencies [
|
||||
{plug :nvim-tree/nvim-web-devicons}
|
||||
]
|
||||
}
|
||||
|
||||
{
|
||||
plug :nvim-telescope/telescope.nvim
|
||||
:tag "0.1.8"
|
||||
:dependencies [
|
||||
{plug :nvim-lua/plenary.nvim}
|
||||
]
|
||||
}
|
||||
|
||||
{
|
||||
plug :OXY2DEV/markview.nvim
|
||||
:dependencies [
|
||||
{plug :nvim-treesitter/nvim-treesitter}
|
||||
{plug :nvim-tree/nvim-web-devicons}
|
||||
]
|
||||
}
|
||||
|
||||
{
|
||||
plug :shellRaining/hlchunk.nvim
|
||||
:event [
|
||||
{opt :UIEnter}
|
||||
]
|
||||
}
|
||||
|
||||
{
|
||||
plug :ThePrimeagen/harpoon
|
||||
:branch :harpoon2
|
||||
:dependencies [
|
||||
{plug :nvim-lua/plenary.nvim}
|
||||
]
|
||||
}
|
||||
|
||||
{
|
||||
plug :nvim-lualine/lualine.nvim
|
||||
:dependencies [
|
||||
{plug :nvim-tree/nvim-web-devicons}
|
||||
]
|
||||
}
|
||||
|
||||
{
|
||||
plug :nvim-treesitter/nvim-treesitter
|
||||
:build ":TSUpdate"
|
||||
}
|
||||
|
||||
{
|
||||
plug :VonHeikemen/lsp-zero.nvim
|
||||
:branch "v3.x"
|
||||
:dependencies [
|
||||
{plug :neovim/nvim-lspconfig}
|
||||
{plug :williamboman/mason.nvim}
|
||||
{plug :williamboman/mason-lspconfig.nvim}
|
||||
|
||||
{plug :hrsh7th/nvim-cmp}
|
||||
{plug :hrsh7th/cmp-nvim-lsp}
|
||||
{plug :L3MON4D3/LuaSnip}
|
||||
]
|
||||
}
|
||||
|
||||
{
|
||||
plug :echasnovski/mini.nvim
|
||||
:version false
|
||||
}
|
||||
])
|
||||
|
||||
|
43
fnl/plugins/lsp-zero.fnl
Executable file
43
fnl/plugins/lsp-zero.fnl
Executable file
|
@ -0,0 +1,43 @@
|
|||
(local mason (require :mason))
|
||||
(mason.setup)
|
||||
|
||||
(local lsp (require :lsp-zero))
|
||||
(lsp.preset)
|
||||
|
||||
(local lspconfig (require :lspconfig))
|
||||
(lspconfig.lua_ls.setup (lsp.nvim_lua_ls))
|
||||
|
||||
(local cmp (require :cmp))
|
||||
(local cmp_action (lsp.cmp_action))
|
||||
|
||||
|
||||
(lsp.on_attach (fn [client bufnr] lsp.default_keymaps {:buffer bufnr}))
|
||||
|
||||
(lspconfig.pylsp.setup {
|
||||
:setings {
|
||||
:pylsp {
|
||||
:plugins {
|
||||
:pycodestyle {
|
||||
:ignore [:W391 :E303 :E226]
|
||||
:maxLineLength 120 }}}}})
|
||||
|
||||
(lsp.setup)
|
||||
|
||||
(cmp.setup {
|
||||
:mapping {
|
||||
:<CR> (cmp.mapping.confirm {:select true})
|
||||
|
||||
:<Tab> (cmp.mapping (fn [fallback]
|
||||
(if (cmp.visible)
|
||||
(cmp.select_next_item)
|
||||
(fallback)) [:i :s] ))
|
||||
|
||||
:<S-Tab> (cmp.mapping (fn [fallback]
|
||||
(if (cmp.visible)
|
||||
(cmp.select_prev_item)
|
||||
(fallback)) [:i :s] ))
|
||||
|
||||
:<C-Space> cmp.mapping.complete
|
||||
|
||||
:<C-f> cmp_action.luasnip_jump_forward
|
||||
:<C-b> cmp_action.luasnip_jump_backward }})
|
|
@ -1,67 +0,0 @@
|
|||
require('mason').setup()
|
||||
local lsp = require('lsp-zero').preset({})
|
||||
|
||||
lsp.on_attach(function(client, bufnr)
|
||||
-- see :help lsp-zero-keybindings
|
||||
-- to learn the available actions
|
||||
lsp.default_keymaps({buffer = bufnr})
|
||||
end)
|
||||
|
||||
-- (Optional) Configure lua language server for neovim
|
||||
require('lspconfig').lua_ls.setup(lsp.nvim_lua_ls())
|
||||
|
||||
|
||||
require('lspconfig').pylsp.setup{
|
||||
settings = {
|
||||
pylsp = {
|
||||
plugins = {
|
||||
pycodestyle = {
|
||||
ignore = {'W391', 'E303', 'E226'},
|
||||
maxLineLength = 120
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
lsp.setup()
|
||||
|
||||
-- You need to setup `cmp` after lsp-zero
|
||||
local cmp = require('cmp')
|
||||
local cmp_action = require('lsp-zero').cmp_action()
|
||||
|
||||
|
||||
cmp.setup({
|
||||
mapping = {
|
||||
-- `Enter` key to confirm completion
|
||||
['<CR>'] = cmp.mapping.confirm({select = true}),
|
||||
|
||||
|
||||
|
||||
-- Cycle with tab, as intended by divine creation
|
||||
["<Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_next_item()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, {"i", "s"}),
|
||||
|
||||
|
||||
["<S-Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_prev_item()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, {"i", "s"}),
|
||||
|
||||
|
||||
-- Ctrl+Space to trigger completion menu
|
||||
['<C-Space>'] = cmp.mapping.complete(),
|
||||
|
||||
-- Navigate between snippet placeholder
|
||||
['<C-f>'] = cmp_action.luasnip_jump_forward(),
|
||||
['<C-b>'] = cmp_action.luasnip_jump_backward(),
|
||||
}
|
||||
})
|
257
fnl/plugins/lualine.fnl
Executable file
257
fnl/plugins/lualine.fnl
Executable file
|
@ -0,0 +1,257 @@
|
|||
(local lualine (require :lualine))
|
||||
(lualine.setup)
|
||||
|
||||
; TODO: create a new theme
|
||||
|
||||
; OLD THEME :
|
||||
|
||||
; local lualine = require('lualine')
|
||||
;
|
||||
; local colors = {
|
||||
; bg = '#202328',
|
||||
; fg = '#bbc2cf',
|
||||
; yellow = '#ECBE7B',
|
||||
; cyan = '#008080',
|
||||
; darkblue = '#081633',
|
||||
; green = '#98be65',
|
||||
; orange = '#FF8800',
|
||||
; violet = '#a9a1e1',
|
||||
; magenta = '#c678dd',
|
||||
; blue = '#51afef',
|
||||
; red = '#ec5f67',
|
||||
; }
|
||||
;
|
||||
;
|
||||
; local conditions = {
|
||||
; buffer_not_empty = function()
|
||||
; return vim.fn.empty(vim.fn.expand('%:t')) ~= 1
|
||||
; end,
|
||||
; hide_in_width = function()
|
||||
; return vim.fn.winwidth(0) > 80
|
||||
; end,
|
||||
; check_git_workspace = function()
|
||||
; local filepath = vim.fn.expand('%:p:h')
|
||||
; local gitdir = vim.fn.finddir('.git', filepath .. ';')
|
||||
; return gitdir and #gitdir > 0 and #gitdir < #filepath
|
||||
; end,
|
||||
; }
|
||||
;
|
||||
; -- Config
|
||||
; local config = {
|
||||
; options = {
|
||||
; component_separators = '',
|
||||
; section_separators = '',
|
||||
; theme = {
|
||||
;
|
||||
; normal = {
|
||||
; c = {
|
||||
; fg = colors.fg,
|
||||
; bg = colors.bg
|
||||
; }
|
||||
; },
|
||||
;
|
||||
; inactive = {
|
||||
; c = {
|
||||
; fg = colors.fg,
|
||||
; bg = colors.bg
|
||||
; }
|
||||
; },
|
||||
;
|
||||
; },
|
||||
; },
|
||||
;
|
||||
;
|
||||
; sections = {
|
||||
; lualine_a = {},
|
||||
; lualine_b = {},
|
||||
; lualine_y = {},
|
||||
; lualine_z = {},
|
||||
; lualine_c = {},
|
||||
; lualine_x = {},
|
||||
; },
|
||||
; inactive_sections = {
|
||||
; lualine_a = {},
|
||||
; lualine_b = {},
|
||||
; lualine_y = {},
|
||||
; lualine_z = {},
|
||||
; lualine_c = {},
|
||||
; lualine_x = {},
|
||||
; },
|
||||
; }
|
||||
;
|
||||
; local function ins_left(component)
|
||||
; table.insert(config.sections.lualine_c, component)
|
||||
; end
|
||||
;
|
||||
; local function ins_right(component)
|
||||
; table.insert(config.sections.lualine_x, component)
|
||||
; end
|
||||
;
|
||||
; ins_left {
|
||||
; function()
|
||||
; return '▊'
|
||||
; end,
|
||||
;
|
||||
; color = { fg = colors.blue },
|
||||
;
|
||||
; padding = {
|
||||
; left = 0,
|
||||
; right = 1
|
||||
; },
|
||||
; }
|
||||
;
|
||||
;
|
||||
;
|
||||
; ins_left {
|
||||
; function()
|
||||
; -- return ''
|
||||
; return ''
|
||||
; end,
|
||||
; color = function()
|
||||
; local mode_color = {
|
||||
; n = colors.blue,
|
||||
; i = colors.red,
|
||||
; v = colors.green,
|
||||
; [''] = colors.orange,
|
||||
; V = colors.green,
|
||||
; c = colors.magenta,
|
||||
; no = colors.red,
|
||||
; s = colors.orange,
|
||||
; S = colors.orange,
|
||||
; [''] = colors.orange,
|
||||
; ic = colors.yellow,
|
||||
; R = colors.violet,
|
||||
; Rv = colors.violet,
|
||||
; cv = colors.red,
|
||||
; ce = colors.red,
|
||||
; r = colors.cyan,
|
||||
; rm = colors.cyan,
|
||||
; ['r?'] = colors.cyan,
|
||||
; ['!'] = colors.red,
|
||||
; t = colors.red,
|
||||
; }
|
||||
; return { fg = mode_color[vim.fn.mode()] }
|
||||
; end,
|
||||
; padding = { right = 1 },
|
||||
; }
|
||||
;
|
||||
;
|
||||
; ins_left {
|
||||
; 'branch',
|
||||
; icon = '',
|
||||
;
|
||||
; color = {
|
||||
; fg = colors.violet,
|
||||
; gui = 'bold'
|
||||
; },
|
||||
; }
|
||||
;
|
||||
; ins_left {
|
||||
; 'diff',
|
||||
;
|
||||
; symbols = {
|
||||
; added = ' ',
|
||||
; modified = ' ',
|
||||
; removed = ' '
|
||||
; },
|
||||
;
|
||||
; diff_color = {
|
||||
; added = { fg = colors.green },
|
||||
; modified = { fg = colors.orange },
|
||||
; removed = { fg = colors.red },
|
||||
; },
|
||||
;
|
||||
; cond = conditions.hide_in_width,
|
||||
; }
|
||||
;
|
||||
;
|
||||
;
|
||||
; ins_left {
|
||||
; 'diagnostics',
|
||||
;
|
||||
; sources = { 'nvim_diagnostic' },
|
||||
;
|
||||
; symbols = {
|
||||
; error = ' ',
|
||||
; warn = ' ',
|
||||
; info = ' '
|
||||
; },
|
||||
;
|
||||
; diagnostics_color = {
|
||||
; color_error = { fg = colors.red },
|
||||
; color_warn = { fg = colors.yellow },
|
||||
; color_info = { fg = colors.cyan },
|
||||
; },
|
||||
; }
|
||||
;
|
||||
; ins_left {
|
||||
; function()
|
||||
; return '%='
|
||||
; end,
|
||||
; }
|
||||
;
|
||||
;
|
||||
; ins_left {
|
||||
; 'filename',
|
||||
; cond = conditions.buffer_not_empty,
|
||||
;
|
||||
; color = {
|
||||
; fg = colors.magenta,
|
||||
; gui = 'bold'
|
||||
; },
|
||||
; }
|
||||
;
|
||||
;
|
||||
; ins_right {
|
||||
; 'filetype',
|
||||
; colored = true,
|
||||
; icon_only = false,
|
||||
; icon = { align = 'right' }
|
||||
; }
|
||||
;
|
||||
; ins_right {
|
||||
; 'progress',
|
||||
;
|
||||
; color = {
|
||||
; fg = colors.fg,
|
||||
; gui = 'bold'
|
||||
; }
|
||||
; }
|
||||
;
|
||||
;
|
||||
; ins_right {
|
||||
; 'o:encoding',
|
||||
;
|
||||
; fmt = string.upper,
|
||||
; cond = conditions.hide_in_width,
|
||||
;
|
||||
; color = {
|
||||
; fg = colors.green,
|
||||
; gui = 'bold'
|
||||
; },
|
||||
; }
|
||||
;
|
||||
;
|
||||
; ins_right {
|
||||
; 'fileformat',
|
||||
;
|
||||
; fmt = string.upper,
|
||||
; icons_enabled = false,
|
||||
;
|
||||
; color = {
|
||||
; fg = colors.green,
|
||||
; gui = 'bold'
|
||||
; },
|
||||
; }
|
||||
;
|
||||
;
|
||||
; ins_right {
|
||||
; function()
|
||||
; return '▊'
|
||||
; end,
|
||||
;
|
||||
; color = { fg = colors.blue },
|
||||
; padding = { left = 1 },
|
||||
; }
|
||||
;
|
||||
; lualine.setup(config)
|
|
@ -1,276 +0,0 @@
|
|||
-- Eviline config for lualine
|
||||
-- Author: shadmansaleh
|
||||
-- Credit: glepnir
|
||||
local lualine = require('lualine')
|
||||
|
||||
local colors = {
|
||||
bg = '#202328',
|
||||
fg = '#bbc2cf',
|
||||
yellow = '#ECBE7B',
|
||||
cyan = '#008080',
|
||||
darkblue = '#081633',
|
||||
green = '#98be65',
|
||||
orange = '#FF8800',
|
||||
violet = '#a9a1e1',
|
||||
magenta = '#c678dd',
|
||||
blue = '#51afef',
|
||||
red = '#ec5f67',
|
||||
}
|
||||
|
||||
|
||||
local conditions = {
|
||||
buffer_not_empty = function()
|
||||
return vim.fn.empty(vim.fn.expand('%:t')) ~= 1
|
||||
end,
|
||||
hide_in_width = function()
|
||||
return vim.fn.winwidth(0) > 80
|
||||
end,
|
||||
check_git_workspace = function()
|
||||
local filepath = vim.fn.expand('%:p:h')
|
||||
local gitdir = vim.fn.finddir('.git', filepath .. ';')
|
||||
return gitdir and #gitdir > 0 and #gitdir < #filepath
|
||||
end,
|
||||
}
|
||||
|
||||
-- Config
|
||||
local config = {
|
||||
options = {
|
||||
component_separators = '',
|
||||
section_separators = '',
|
||||
theme = {
|
||||
|
||||
normal = {
|
||||
c = {
|
||||
fg = colors.fg,
|
||||
bg = colors.bg
|
||||
}
|
||||
},
|
||||
|
||||
inactive = {
|
||||
c = {
|
||||
fg = colors.fg,
|
||||
bg = colors.bg
|
||||
}
|
||||
},
|
||||
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
sections = {
|
||||
lualine_a = {},
|
||||
lualine_b = {},
|
||||
lualine_y = {},
|
||||
lualine_z = {},
|
||||
lualine_c = {},
|
||||
lualine_x = {},
|
||||
},
|
||||
inactive_sections = {
|
||||
lualine_a = {},
|
||||
lualine_b = {},
|
||||
lualine_y = {},
|
||||
lualine_z = {},
|
||||
lualine_c = {},
|
||||
lualine_x = {},
|
||||
},
|
||||
}
|
||||
|
||||
local function ins_left(component)
|
||||
table.insert(config.sections.lualine_c, component)
|
||||
end
|
||||
|
||||
local function ins_right(component)
|
||||
table.insert(config.sections.lualine_x, component)
|
||||
end
|
||||
|
||||
ins_left {
|
||||
function()
|
||||
return '▊'
|
||||
end,
|
||||
|
||||
color = { fg = colors.blue },
|
||||
|
||||
padding = {
|
||||
left = 0,
|
||||
right = 1
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
|
||||
ins_left {
|
||||
function()
|
||||
return ''
|
||||
--return ''
|
||||
-- local mode_string = {
|
||||
-- n = 'Normal',
|
||||
-- i = 'Insert',
|
||||
-- v = 'Visual',
|
||||
-- V = 'Visual line',
|
||||
-- c = 'Change',
|
||||
-- no = 'dunno1',
|
||||
-- s = 'dunno2',
|
||||
-- S = 'dunno3',
|
||||
-- [''] = 'dunno4',
|
||||
-- ic = 'dunno5',
|
||||
-- R = 'dunno6',
|
||||
-- Rv = 'dunno7',
|
||||
-- cv = 'dunno8',
|
||||
-- ce = 'dunno9',
|
||||
-- r = 'dunno10',
|
||||
-- rm = 'dunno11',
|
||||
-- ['r?'] = 'dunno12',
|
||||
-- ['!'] = 'dunno13',
|
||||
-- t = 'dunno14',
|
||||
-- }
|
||||
-- return mode_string[vim.fn.mode()]
|
||||
--
|
||||
end,
|
||||
color = function()
|
||||
local mode_color = {
|
||||
n = colors.blue,
|
||||
i = colors.red,
|
||||
v = colors.green,
|
||||
[''] = colors.orange,
|
||||
V = colors.green,
|
||||
c = colors.magenta,
|
||||
no = colors.red,
|
||||
s = colors.orange,
|
||||
S = colors.orange,
|
||||
[''] = colors.orange,
|
||||
ic = colors.yellow,
|
||||
R = colors.violet,
|
||||
Rv = colors.violet,
|
||||
cv = colors.red,
|
||||
ce = colors.red,
|
||||
r = colors.cyan,
|
||||
rm = colors.cyan,
|
||||
['r?'] = colors.cyan,
|
||||
['!'] = colors.red,
|
||||
t = colors.red,
|
||||
}
|
||||
return { fg = mode_color[vim.fn.mode()] }
|
||||
end,
|
||||
padding = { right = 1 },
|
||||
}
|
||||
|
||||
|
||||
ins_left {
|
||||
'branch',
|
||||
icon = '',
|
||||
|
||||
color = {
|
||||
fg = colors.violet,
|
||||
gui = 'bold'
|
||||
},
|
||||
}
|
||||
|
||||
ins_left {
|
||||
'diff',
|
||||
|
||||
symbols = {
|
||||
added = ' ',
|
||||
modified = ' ',
|
||||
removed = ' '
|
||||
},
|
||||
|
||||
diff_color = {
|
||||
added = { fg = colors.green },
|
||||
modified = { fg = colors.orange },
|
||||
removed = { fg = colors.red },
|
||||
},
|
||||
|
||||
cond = conditions.hide_in_width,
|
||||
}
|
||||
|
||||
|
||||
|
||||
ins_left {
|
||||
'diagnostics',
|
||||
|
||||
sources = { 'nvim_diagnostic' },
|
||||
|
||||
symbols = {
|
||||
error = ' ',
|
||||
warn = ' ',
|
||||
info = ' '
|
||||
},
|
||||
|
||||
diagnostics_color = {
|
||||
color_error = { fg = colors.red },
|
||||
color_warn = { fg = colors.yellow },
|
||||
color_info = { fg = colors.cyan },
|
||||
},
|
||||
}
|
||||
|
||||
ins_left {
|
||||
function()
|
||||
return '%='
|
||||
end,
|
||||
}
|
||||
|
||||
|
||||
ins_left {
|
||||
'filename',
|
||||
cond = conditions.buffer_not_empty,
|
||||
|
||||
color = {
|
||||
fg = colors.magenta,
|
||||
gui = 'bold'
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
ins_right {
|
||||
'filetype',
|
||||
colored = true,
|
||||
icon_only = false,
|
||||
icon = { align = 'right' }
|
||||
}
|
||||
|
||||
ins_right {
|
||||
'progress',
|
||||
|
||||
color = {
|
||||
fg = colors.fg,
|
||||
gui = 'bold'
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ins_right {
|
||||
'o:encoding',
|
||||
|
||||
fmt = string.upper,
|
||||
cond = conditions.hide_in_width,
|
||||
|
||||
color = {
|
||||
fg = colors.green,
|
||||
gui = 'bold'
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
ins_right {
|
||||
'fileformat',
|
||||
|
||||
fmt = string.upper,
|
||||
icons_enabled = false,
|
||||
|
||||
color = {
|
||||
fg = colors.green,
|
||||
gui = 'bold'
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
ins_right {
|
||||
function()
|
||||
return '▊'
|
||||
end,
|
||||
|
||||
color = { fg = colors.blue },
|
||||
padding = { left = 1 },
|
||||
}
|
||||
|
||||
lualine.setup(config)
|
14
fnl/plugins/mini.fnl
Normal file
14
fnl/plugins/mini.fnl
Normal file
|
@ -0,0 +1,14 @@
|
|||
(local cursorword (require :mini.cursorword))
|
||||
(cursorword.setup)
|
||||
|
||||
(local trailspace (require :mini.trailspace))
|
||||
(trailspace.setup)
|
||||
|
||||
(local pairs (require :mini.pairs))
|
||||
(pairs.setup)
|
||||
|
||||
(local clue (require :mini.clue))
|
||||
(clue.setup)
|
||||
|
||||
(local surround (require :mini.surround))
|
||||
(surround.setup)
|
|
@ -1,108 +0,0 @@
|
|||
require('mini.cursorword').setup()
|
||||
require('mini.trailspace').setup()
|
||||
require('mini.pairs').setup()
|
||||
|
||||
|
||||
local miniclue = require('mini.clue')
|
||||
miniclue.setup({
|
||||
triggers = {
|
||||
-- Leader triggers
|
||||
{ mode = 'n', keys = '<Leader>' },
|
||||
{ mode = 'x', keys = '<Leader>' },
|
||||
|
||||
-- Built-in completion
|
||||
{ mode = 'i', keys = '<C-x>' },
|
||||
|
||||
-- `g` key
|
||||
{ mode = 'n', keys = 'g' },
|
||||
{ mode = 'x', keys = 'g' },
|
||||
|
||||
-- Marks
|
||||
{ mode = 'n', keys = "'" },
|
||||
{ mode = 'n', keys = '`' },
|
||||
{ mode = 'x', keys = "'" },
|
||||
{ mode = 'x', keys = '`' },
|
||||
|
||||
-- Registers
|
||||
{ mode = 'n', keys = '"' },
|
||||
{ mode = 'x', keys = '"' },
|
||||
{ mode = 'i', keys = '<C-r>' },
|
||||
{ mode = 'c', keys = '<C-r>' },
|
||||
|
||||
-- Window commands
|
||||
{ mode = 'n', keys = '<C-w>' },
|
||||
|
||||
-- `z` key
|
||||
{ mode = 'n', keys = 'z' },
|
||||
{ mode = 'x', keys = 'z' },
|
||||
},
|
||||
|
||||
clues = {
|
||||
-- Enhance this by adding descriptions for <Leader> mapping groups
|
||||
miniclue.gen_clues.builtin_completion(),
|
||||
miniclue.gen_clues.g(),
|
||||
miniclue.gen_clues.marks(),
|
||||
miniclue.gen_clues.registers(),
|
||||
miniclue.gen_clues.windows(),
|
||||
miniclue.gen_clues.z(),
|
||||
},
|
||||
|
||||
-- Array of opt-in triggers which start custom key query process.
|
||||
-- **Needs to have something in order to show clues**.
|
||||
-- Clue window settings
|
||||
window = {
|
||||
-- Floating window config
|
||||
config = {},
|
||||
|
||||
-- Delay before showing clue window
|
||||
delay = 400,
|
||||
|
||||
-- Keys to scroll inside the clue window
|
||||
scroll_down = '<C-d>',
|
||||
scroll_up = '<C-u>',
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
require('mini.surround').setup(
|
||||
{
|
||||
-- Add custom surroundings to be used on top of builtin ones. For more
|
||||
-- information with examples, see `:h MiniSurround.config`.
|
||||
custom_surroundings = nil,
|
||||
|
||||
-- Duration (in ms) of highlight when calling `MiniSurround.highlight()`
|
||||
highlight_duration = 500,
|
||||
|
||||
-- Module mappings. Use `''` (empty string) to disable one.
|
||||
mappings = {
|
||||
add = 'sa', -- Add surrounding in Normal and Visual modes
|
||||
delete = 'sd', -- Delete surrounding
|
||||
find = 'sf', -- Find surrounding (to the right)
|
||||
find_left = 'sF', -- Find surrounding (to the left)
|
||||
highlight = 'sh', -- Highlight surrounding
|
||||
replace = 'sr', -- Replace surrounding
|
||||
update_n_lines = 'sn', -- Update `n_lines`
|
||||
|
||||
suffix_last = 'l', -- Suffix to search with "prev" method
|
||||
suffix_next = 'n', -- Suffix to search with "next" method
|
||||
},
|
||||
|
||||
-- Number of lines within which surrounding is searched
|
||||
n_lines = 20,
|
||||
|
||||
-- Whether to respect selection type:
|
||||
-- - Place surroundings on separate lines in linewise mode.
|
||||
-- - Place surroundings on each line in blockwise mode.
|
||||
respect_selection_type = false,
|
||||
|
||||
-- How to search for surrounding (first inside current line, then inside
|
||||
-- neighborhood). One of 'cover', 'cover_or_next', 'cover_or_prev',
|
||||
-- 'cover_or_nearest', 'next', 'prev', 'nearest'. For more details,
|
||||
-- see `:h MiniSurround.config`.
|
||||
search_method = 'cover',
|
||||
|
||||
-- Whether to disable showing non-error feedback
|
||||
silent = false,
|
||||
}
|
||||
)
|
||||
|
2
fnl/plugins/oil.fnl
Normal file
2
fnl/plugins/oil.fnl
Normal file
|
@ -0,0 +1,2 @@
|
|||
(local oil (require :oil))
|
||||
(oil.setup)
|
|
@ -1,177 +0,0 @@
|
|||
require("oil").setup({
|
||||
-- Oil will take over directory buffers (e.g. `vim .` or `:e src/`)
|
||||
-- Set to false if you still want to use netrw.
|
||||
default_file_explorer = true,
|
||||
-- Id is automatically added at the beginning, and name at the end
|
||||
-- See :help oil-columns
|
||||
columns = {
|
||||
"icon",
|
||||
-- "permissions",
|
||||
-- "size",
|
||||
-- "mtime",
|
||||
},
|
||||
-- Buffer-local options to use for oil buffers
|
||||
buf_options = {
|
||||
buflisted = false,
|
||||
bufhidden = "hide",
|
||||
},
|
||||
-- Window-local options to use for oil buffers
|
||||
win_options = {
|
||||
wrap = false,
|
||||
signcolumn = "no",
|
||||
cursorcolumn = false,
|
||||
foldcolumn = "0",
|
||||
spell = false,
|
||||
list = false,
|
||||
conceallevel = 3,
|
||||
concealcursor = "nvic",
|
||||
},
|
||||
-- Send deleted files to the trash instead of permanently deleting them (:help oil-trash)
|
||||
delete_to_trash = false,
|
||||
-- Skip the confirmation popup for simple operations (:help oil.skip_confirm_for_simple_edits)
|
||||
skip_confirm_for_simple_edits = false,
|
||||
-- Selecting a new/moved/renamed file or directory will prompt you to save changes first
|
||||
-- (:help prompt_save_on_select_new_entry)
|
||||
prompt_save_on_select_new_entry = true,
|
||||
-- Oil will automatically delete hidden buffers after this delay
|
||||
-- You can set the delay to false to disable cleanup entirely
|
||||
-- Note that the cleanup process only starts when none of the oil buffers are currently displayed
|
||||
cleanup_delay_ms = 2000,
|
||||
lsp_file_methods = {
|
||||
-- Time to wait for LSP file operations to complete before skipping
|
||||
timeout_ms = 1000,
|
||||
-- Set to true to autosave buffers that are updated with LSP willRenameFiles
|
||||
-- Set to "unmodified" to only save unmodified buffers
|
||||
autosave_changes = false,
|
||||
},
|
||||
-- Constrain the cursor to the editable parts of the oil buffer
|
||||
-- Set to `false` to disable, or "name" to keep it on the file names
|
||||
constrain_cursor = "editable",
|
||||
-- Set to true to watch the filesystem for changes and reload oil
|
||||
experimental_watch_for_changes = false,
|
||||
-- Keymaps in oil buffer. Can be any value that `vim.keymap.set` accepts OR a table of keymap
|
||||
-- options with a `callback` (e.g. { callback = function() ... end, desc = "", mode = "n" })
|
||||
-- Additionally, if it is a string that matches "actions.<name>",
|
||||
-- it will use the mapping at require("oil.actions").<name>
|
||||
-- Set to `false` to remove a keymap
|
||||
-- See :help oil-actions for a list of all available actions
|
||||
keymaps = {
|
||||
["g?"] = "actions.show_help",
|
||||
["<CR>"] = "actions.select",
|
||||
["<C-s>"] = "actions.select_vsplit",
|
||||
["<C-h>"] = "actions.select_split",
|
||||
["<C-t>"] = "actions.select_tab",
|
||||
["<C-p>"] = "actions.preview",
|
||||
["<C-c>"] = "actions.close",
|
||||
["<C-l>"] = "actions.refresh",
|
||||
["-"] = "actions.parent",
|
||||
["_"] = "actions.open_cwd",
|
||||
["`"] = "actions.cd",
|
||||
["~"] = "actions.tcd",
|
||||
["gs"] = "actions.change_sort",
|
||||
["gx"] = "actions.open_external",
|
||||
["g."] = "actions.toggle_hidden",
|
||||
["g\\"] = "actions.toggle_trash",
|
||||
},
|
||||
-- Set to false to disable all of the above keymaps
|
||||
use_default_keymaps = true,
|
||||
view_options = {
|
||||
-- Show files and directories that start with "."
|
||||
show_hidden = false,
|
||||
-- This function defines what is considered a "hidden" file
|
||||
is_hidden_file = function(name, bufnr)
|
||||
return vim.startswith(name, ".")
|
||||
end,
|
||||
-- This function defines what will never be shown, even when `show_hidden` is set
|
||||
is_always_hidden = function(name, bufnr)
|
||||
return false
|
||||
end,
|
||||
-- Sort file names in a more intuitive order for humans. Is less performant,
|
||||
-- so you may want to set to false if you work with large directories.
|
||||
natural_order = true,
|
||||
sort = {
|
||||
-- sort order can be "asc" or "desc"
|
||||
-- see :help oil-columns to see which columns are sortable
|
||||
{ "type", "asc" },
|
||||
{ "name", "asc" },
|
||||
},
|
||||
},
|
||||
-- Extra arguments to pass to SCP when moving/copying files over SSH
|
||||
extra_scp_args = {},
|
||||
-- EXPERIMENTAL support for performing file operations with git
|
||||
git = {
|
||||
-- Return true to automatically git add/mv/rm files
|
||||
add = function(path)
|
||||
return false
|
||||
end,
|
||||
mv = function(src_path, dest_path)
|
||||
return false
|
||||
end,
|
||||
rm = function(path)
|
||||
return false
|
||||
end,
|
||||
},
|
||||
-- Configuration for the floating window in oil.open_float
|
||||
float = {
|
||||
-- Padding around the floating window
|
||||
padding = 2,
|
||||
max_width = 0,
|
||||
max_height = 0,
|
||||
border = "rounded",
|
||||
win_options = {
|
||||
winblend = 0,
|
||||
},
|
||||
-- This is the config that will be passed to nvim_open_win.
|
||||
-- Change values here to customize the layout
|
||||
override = function(conf)
|
||||
return conf
|
||||
end,
|
||||
},
|
||||
-- Configuration for the actions floating preview window
|
||||
preview = {
|
||||
-- Width dimensions can be integers or a float between 0 and 1 (e.g. 0.4 for 40%)
|
||||
-- min_width and max_width can be a single value or a list of mixed integer/float types.
|
||||
-- max_width = {100, 0.8} means "the lesser of 100 columns or 80% of total"
|
||||
max_width = 0.9,
|
||||
-- min_width = {40, 0.4} means "the greater of 40 columns or 40% of total"
|
||||
min_width = { 40, 0.4 },
|
||||
-- optionally define an integer/float for the exact width of the preview window
|
||||
width = nil,
|
||||
-- Height dimensions can be integers or a float between 0 and 1 (e.g. 0.4 for 40%)
|
||||
-- min_height and max_height can be a single value or a list of mixed integer/float types.
|
||||
-- max_height = {80, 0.9} means "the lesser of 80 columns or 90% of total"
|
||||
max_height = 0.9,
|
||||
-- min_height = {5, 0.1} means "the greater of 5 columns or 10% of total"
|
||||
min_height = { 5, 0.1 },
|
||||
-- optionally define an integer/float for the exact height of the preview window
|
||||
height = nil,
|
||||
border = "rounded",
|
||||
win_options = {
|
||||
winblend = 0,
|
||||
},
|
||||
-- Whether the preview window is automatically updated when the cursor is moved
|
||||
update_on_cursor_moved = true,
|
||||
},
|
||||
-- Configuration for the floating progress window
|
||||
progress = {
|
||||
max_width = 0.9,
|
||||
min_width = { 40, 0.4 },
|
||||
width = nil,
|
||||
max_height = { 10, 0.9 },
|
||||
min_height = { 5, 0.1 },
|
||||
height = nil,
|
||||
border = "rounded",
|
||||
minimized_border = "none",
|
||||
win_options = {
|
||||
winblend = 0,
|
||||
},
|
||||
},
|
||||
-- Configuration for the floating SSH window
|
||||
ssh = {
|
||||
border = "rounded",
|
||||
},
|
||||
-- Configuration for the floating keymaps help window
|
||||
keymaps_help = {
|
||||
border = "rounded",
|
||||
},
|
||||
})
|
2
fnl/plugins/telescope.fnl
Normal file
2
fnl/plugins/telescope.fnl
Normal file
|
@ -0,0 +1,2 @@
|
|||
(local telescope (require :telescope))
|
||||
(telescope.setup)
|
|
@ -1,30 +0,0 @@
|
|||
require('telescope').setup{
|
||||
defaults = {
|
||||
-- Default configuration for telescope goes here:
|
||||
-- config_key = value,
|
||||
mappings = {
|
||||
i = {
|
||||
-- map actions.which_key to <C-h> (default: <C-/>)
|
||||
-- actions.which_key shows the mappings for your picker,
|
||||
-- e.g. git_{create, delete, ...}_branch for the git_branches picker
|
||||
["<C-h>"] = "which_key"
|
||||
}
|
||||
}
|
||||
},
|
||||
pickers = {
|
||||
-- Default configuration for builtin pickers goes here:
|
||||
-- picker_name = {
|
||||
-- picker_config_key = value,
|
||||
-- ...
|
||||
-- }
|
||||
-- Now the picker_config_key will be applied every time you call this
|
||||
-- builtin picker
|
||||
},
|
||||
extensions = {
|
||||
-- Your extension configuration goes here:
|
||||
-- extension_name = {
|
||||
-- extension_config_key = value,
|
||||
-- }
|
||||
-- please take a look at the readme of the extension you want to configure
|
||||
}
|
||||
}
|
28
fnl/plugins/treesitter.fnl
Executable file
28
fnl/plugins/treesitter.fnl
Executable file
|
@ -0,0 +1,28 @@
|
|||
(local configs (require :nvim-treesitter.configs))
|
||||
(local parsers (require :nvim-treesitter.parsers))
|
||||
|
||||
(configs.setup {
|
||||
:ensure_installed [
|
||||
:c
|
||||
:lua
|
||||
:vim
|
||||
:vimdoc
|
||||
:query
|
||||
:haskell
|
||||
:go
|
||||
:bash
|
||||
:python
|
||||
:fennel
|
||||
:hyprlang
|
||||
]
|
||||
|
||||
:sync_install false
|
||||
:auto_install true
|
||||
|
||||
:highlight {
|
||||
:enable true
|
||||
}
|
||||
})
|
||||
|
||||
(vim.filetype.add {
|
||||
:pattern { :.*/hypr/.*%.conf :hyprlang }})
|
|
@ -1,27 +0,0 @@
|
|||
require'nvim-treesitter.configs'.setup {
|
||||
-- A list of parser names, or "all" (the five listed parsers should always be installed)
|
||||
ensure_installed = { "c", "lua", "vim", "vimdoc", "query", "haskell", "go", "bash", "python" },
|
||||
|
||||
-- Install parsers synchronously (only applied to `ensure_installed`)
|
||||
sync_install = false,
|
||||
|
||||
-- Automatically install missing parsers when entering buffer
|
||||
-- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally
|
||||
auto_install = true,
|
||||
|
||||
highlight = {
|
||||
enable = true,
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
|
||||
local parser_config = require("nvim-treesitter.parsers").get_parser_configs()
|
||||
parser_config.hypr = {
|
||||
install_info = {
|
||||
url = "https://github.com/luckasRanarison/tree-sitter-hypr",
|
||||
files = { "src/parser.c" },
|
||||
branch = "master",
|
||||
},
|
||||
filetype = "hypr",
|
||||
}
|
24
fnl/plugins/wilder.fnl
Executable file
24
fnl/plugins/wilder.fnl
Executable file
|
@ -0,0 +1,24 @@
|
|||
(local wilder (require :wilder))
|
||||
|
||||
(wilder.setup {
|
||||
:modes [":" "/" "?"]
|
||||
})
|
||||
|
||||
(wilder.set_option :renderer (wilder.renderer_mux {
|
||||
":" (wilder.popupmenu_renderer {
|
||||
:highlighter wilder.basic_highlighter
|
||||
:left [ " " wilder.popupmenu_devicons ]
|
||||
:right [ " " wilder.popupmenu_scrollbar ]
|
||||
})
|
||||
|
||||
"/" (wilder.popupmenu_renderer {
|
||||
:highlighter wilder.basic_highlighter
|
||||
:left [ "" wilder.popupmenu_devicons ]
|
||||
:right [ "" wilder.popupmenu_scrollbar ]
|
||||
})
|
||||
}))
|
||||
|
||||
(wilder.set_option :renderer
|
||||
(wilder.popupmenu_renderer
|
||||
{ :max_height :20%
|
||||
:min_width :100% }))
|
|
@ -1,28 +0,0 @@
|
|||
local wilder = require('wilder')
|
||||
|
||||
wilder.setup({
|
||||
modes = {':', '/', '?'}
|
||||
})
|
||||
|
||||
|
||||
wilder.set_option('renderer', wilder.renderer_mux({
|
||||
[':'] = wilder.popupmenu_renderer({
|
||||
highlighter = wilder.basic_highlighter(),
|
||||
left = {' ', wilder.popupmenu_devicons()},
|
||||
right = {' ', wilder.popupmenu_scrollbar()},
|
||||
}),
|
||||
['/'] = wilder.wildmenu_renderer({
|
||||
highlighter = wilder.basic_highlighter(),
|
||||
left = {' ', wilder.popupmenu_devicons()},
|
||||
right = {' ', wilder.popupmenu_scrollbar()},
|
||||
}),
|
||||
}))
|
||||
|
||||
|
||||
wilder.set_option('renderer', wilder.popupmenu_renderer({
|
||||
highlighter = wilder.basic_highlighter(),
|
||||
left = {' ', wilder.popupmenu_devicons()},
|
||||
right = {' ', wilder.popupmenu_scrollbar()},
|
||||
max_height = '20%',
|
||||
min_width = '100%'
|
||||
}))
|
51
init.fnl
51
init.fnl
|
@ -10,16 +10,49 @@
|
|||
; mock us. Tell 'em all this is war.
|
||||
; And not fighting a war is for suckers.
|
||||
|
||||
(import-macros {: g! : set!} :hibiscus.vim)
|
||||
|
||||
; (when (vim.g.neovide)
|
||||
; (do
|
||||
; (set (vim.o.guifont) "FiraCode Nerd Font:h14")
|
||||
; (set (vim.g.neovide_scale_factor) 1.0)
|
||||
; (set (vim.g.neovide_refresh_rate) 120)
|
||||
; (set (vim.g.neovide_refresh_rate_idle) 5)
|
||||
; (set (vim.g.neovide_cursor_antialiasing) true)
|
||||
; (set (vim.g.neovide_cursor_animate_in_insert_mode) true)
|
||||
; (set (vim.g.neovide_cursor_vfx_mode) "ripple")))
|
||||
; When using neovide, use these settings
|
||||
(when vim.g.neovide (do
|
||||
(set! guifont "FiraCode Nerd Font:h14")
|
||||
(g! neovide_scale_factor 1.0)
|
||||
(g! neovide_refresh_rate 120)
|
||||
(g! neovide_refresh_rate_idle 5)
|
||||
(g! neovide_cursor_antialiasing true)
|
||||
(g! neovide_cursor_animate_in_insert_mode true)
|
||||
(g! neovide_cursor_vfx_mode "ripple")))
|
||||
|
||||
; Skip loading of following neovim builtins
|
||||
(local default_plugins {
|
||||
:2html_plugin
|
||||
:getscript
|
||||
:getscriptPlugin
|
||||
:gzip
|
||||
:logipat
|
||||
:netrw
|
||||
:netrwPlugin
|
||||
:netrwSettings
|
||||
:netrwFileHandlers
|
||||
:matchit
|
||||
:tar
|
||||
:tarPlugin
|
||||
:rrhelper
|
||||
:spellfile_plugin
|
||||
:vimball
|
||||
:vimballPlugin
|
||||
:zip
|
||||
:zipPlugin
|
||||
:tutor
|
||||
:rplugin
|
||||
:syntax
|
||||
:synmenu
|
||||
:optwin
|
||||
:compiler
|
||||
:bugreport
|
||||
:ftplugin })
|
||||
|
||||
(each [id plug (ipairs default_plugins)]
|
||||
(g! (.. :loaded plug) 1))
|
||||
|
||||
|
||||
(require :plugins)
|
||||
|
|
10
init.lua
10
init.lua
|
@ -1,11 +1,8 @@
|
|||
|
||||
-- needed to fix deprecation warning
|
||||
vim.tbl_islist = vim.islist
|
||||
|
||||
local default_plugins = {"2html_plugin", "getscript", "getscriptPlugin", "gzip", "logipat", "netrw", "netrwPlugin", "netrwSettings", "netrwFileHandlers", "matchit", "tar", "tarPlugin", "rrhelper", "spellfile_plugin", "vimball", "vimballPlugin", "zip", "zipPlugin", "tutor", "rplugin", "syntax", "synmenu", "optwin", "compiler", "bugreport", "ftplugin"}
|
||||
|
||||
for _, plugin in pairs(default_plugins) do
|
||||
vim.g[("loaded_" .. plugin)] = 1
|
||||
end
|
||||
|
||||
-- bootstrap tangerine and hibiscus in order to have fennel support
|
||||
local function bootstrap(url, ref)
|
||||
local name = url:gsub(".*/", "")
|
||||
local path
|
||||
|
@ -29,6 +26,7 @@ end
|
|||
bootstrap("https://github.com/udayvir-singh/tangerine.nvim")
|
||||
bootstrap("https://github.com/udayvir-singh/hibiscus.nvim")
|
||||
|
||||
|
||||
require "tangerine".setup {
|
||||
compiler = {
|
||||
verbose = false,
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
-- :fennel:1720804753
|
||||
return vim.cmd("colorscheme carbonfox")
|
|
@ -1,35 +0,0 @@
|
|||
-- :fennel:1720806691
|
||||
local harpoon = require("harpoon")
|
||||
harpoon.setup()
|
||||
local function _1_()
|
||||
return (harpoon.list):append()
|
||||
end
|
||||
vim.keymap.set("n", "<leader>ha", _1_)
|
||||
local function _2_()
|
||||
return harpoon.ui.toggle_quick_menu(harpoon.list())
|
||||
end
|
||||
vim.keymap.set("n", "<C-e>", _2_)
|
||||
local function _3_()
|
||||
return (harpoon.list):select(1)
|
||||
end
|
||||
vim.keymap.set("n", "<C-h>", _3_)
|
||||
local function _4_()
|
||||
return (harpoon.list):select(2)
|
||||
end
|
||||
vim.keymap.set("n", "<C-t>", _4_)
|
||||
local function _5_()
|
||||
return (harpoon.list):select(3)
|
||||
end
|
||||
vim.keymap.set("n", "<C-n>", _5_)
|
||||
local function _6_()
|
||||
return (harpoon.list):select(4)
|
||||
end
|
||||
vim.keymap.set("n", "<C-s>", _6_)
|
||||
local function _7_()
|
||||
return (harpoon.list):prev()
|
||||
end
|
||||
vim.keymap.set("n", "<C-S-P>", _7_)
|
||||
local function _8_()
|
||||
return (harpoon.list):next()
|
||||
end
|
||||
return vim.keymap.set("n", "<C-S-N>", _8_)
|
|
@ -1,5 +0,0 @@
|
|||
-- :fennel:1720814990
|
||||
require("options.colors")
|
||||
require("options.keybind")
|
||||
require("options.opts")
|
||||
return require("options.harpoon")
|
|
@ -1,35 +0,0 @@
|
|||
-- :fennel:1720807954
|
||||
vim.g["mapleader"] = " "
|
||||
vim.keymap.set({"n"}, "<C-space>", "<cmd>Telescope buffers<CR>", {noremap = true, silent = true})
|
||||
vim.keymap.set({"n"}, "<leader>tw", "<cmd>lua MiniTrailspace.trim()<CR>", {noremap = true, silent = true})
|
||||
vim.keymap.set({"n"}, "<leader>ff", "<cmd>Telescope find_files<CR>", {noremap = true, silent = true})
|
||||
vim.keymap.set({"n"}, "<leader>fs", "<cmd>Telescope current_buffer_fuzzy_find<CR>", {noremap = true, silent = true})
|
||||
vim.keymap.set({"n"}, "<leader>gs", "<cmd>Telescope git_status<CR>", {noremap = true, silent = true})
|
||||
vim.keymap.set({"n"}, "<leader>gg", "<cmd>Telescope live_grep<CR>", {noremap = true, silent = true})
|
||||
vim.keymap.set({"n"}, "w", "<Plug>CamelCaseMotion_w", {noremap = true, silent = true})
|
||||
vim.keymap.set({"n"}, "b", "<Plug>CamelCaseMotion_b", {noremap = true, silent = true})
|
||||
vim.keymap.set({"n"}, "e", "<Plug>CamelCaseMotion_e", {noremap = true, silent = true})
|
||||
vim.keymap.set({"n"}, "ge", "<Plug>CamelCaseMotion_ge", {noremap = true, silent = true})
|
||||
vim.keymap.set({"v"}, "J", ":m '>+1<CR>gv=gv", {noremap = true, silent = true})
|
||||
vim.keymap.set({"v"}, "K", ":m '<-2<CR>gv=gv", {noremap = true, silent = true})
|
||||
vim.keymap.set({"n"}, "J", "mzJ`z", {noremap = true, silent = true})
|
||||
vim.keymap.set({"n"}, "<C-d>", "<C-d>zz", {noremap = true, silent = true})
|
||||
vim.keymap.set({"n"}, "<C-u>", "<C-u>zz", {noremap = true, silent = true})
|
||||
vim.keymap.set({"n"}, "n", "nzzzv", {noremap = true, silent = true})
|
||||
vim.keymap.set({"n"}, "N", "Nzzzv", {noremap = true, silent = true})
|
||||
local function _1_()
|
||||
return {"_dP"}
|
||||
end
|
||||
vim.keymap.set({"x"}, "p", _1_, {noremap = true, silent = true})
|
||||
local function _2_()
|
||||
return {"+dP"}
|
||||
end
|
||||
vim.keymap.set({"x"}, "<leader>p", _2_, {noremap = true, silent = true})
|
||||
local function _3_()
|
||||
return ":%s/\\<<C-r><C-w>\\>/<C-r><C-w>/gI<Left><Left><Left>"
|
||||
end
|
||||
vim.keymap.set({"n"}, "<leader>s", _3_, {noremap = true, silent = true})
|
||||
local function _4_()
|
||||
return {"_d"}
|
||||
end
|
||||
return vim.keymap.set({"n", "v"}, "<leader>d", _4_, {noremap = true, silent = true})
|
|
@ -1,42 +0,0 @@
|
|||
-- :fennel:1720814968
|
||||
vim.opt["number"] = true
|
||||
vim.opt["relativenumber"] = true
|
||||
vim.opt["undofile"] = true
|
||||
vim.opt["backup"] = false
|
||||
vim.opt["autowrite"] = true
|
||||
vim.opt["ignorecase"] = true
|
||||
vim.opt["list"] = true
|
||||
vim.opt["smartindent"] = true
|
||||
vim.opt["splitright"] = true
|
||||
vim.opt["splitkeep"] = "screen"
|
||||
vim.opt["startofline"] = false
|
||||
vim.opt["swapfile"] = false
|
||||
vim.opt["termguicolors"] = true
|
||||
vim.opt["wrap"] = false
|
||||
vim.opt["backupcopy"] = "yes"
|
||||
vim.opt["smarttab"] = false
|
||||
vim.opt["tabstop"] = 4
|
||||
vim.opt["softtabstop"] = 4
|
||||
vim.opt["shiftwidth"] = 4
|
||||
vim.opt["compatible"] = false
|
||||
vim.opt["showmatch"] = true
|
||||
vim.opt["hlsearch"] = true
|
||||
vim.opt["incsearch"] = true
|
||||
vim.opt["shiftwidth"] = 4
|
||||
vim.opt["autoindent"] = true
|
||||
vim.opt["wildmode"] = "longest,list"
|
||||
vim.opt["mouse"] = "v"
|
||||
vim.opt["mouse"] = "a"
|
||||
vim.opt["clipboard"] = "unnamedplus"
|
||||
vim.opt["ttyfast"] = true
|
||||
vim.opt["cursorline"] = true
|
||||
vim.opt["splitbelow"] = true
|
||||
vim.opt["autochdir"] = true
|
||||
vim.opt["signcolumn"] = "yes:1"
|
||||
vim.opt["shell"] = "/bin/zsh"
|
||||
vim.opt["splitright"] = false
|
||||
local disabled_built_ins = {"netrw", "netrwPlugin", "netrwSettings", "netrwFileHandlers", "gzip", "zip", "zipPlugin", "tar", "tarPlugin", "getscript", "getscriptPlugin", "vimball", "vimballPlugin", "2html_plugin", "logipat", "rrhelper", "spellfile_plugin", "matchit"}
|
||||
for _, plugin in pairs(disabled_built_ins) do
|
||||
vim.g[("loaded_" .. plugin)] = 1
|
||||
end
|
||||
return nil
|
|
@ -1,3 +0,0 @@
|
|||
-- :fennel:1720807198
|
||||
require("plugins")
|
||||
return require("options")
|
Loading…
Reference in a new issue