[NeoVim] More Fennel
This commit is contained in:
1
.config/nvim/.gitignore
vendored
1
.config/nvim/.gitignore
vendored
@@ -1,3 +1,4 @@
|
|||||||
lua/plugins.lua
|
lua/plugins.lua
|
||||||
|
lua/settings.lua
|
||||||
lua/tangerine_vimrc.lua
|
lua/tangerine_vimrc.lua
|
||||||
plugin/packer_compiled.lua
|
plugin/packer_compiled.lua
|
||||||
|
|||||||
4
.config/nvim/fnl/macros.fnl
Normal file
4
.config/nvim/fnl/macros.fnl
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
(fn setup [module args]
|
||||||
|
`((. (require ,module) :setup) ,args))
|
||||||
|
|
||||||
|
{: setup}
|
||||||
172
.config/nvim/fnl/settings.fnl
Normal file
172
.config/nvim/fnl/settings.fnl
Normal file
@@ -0,0 +1,172 @@
|
|||||||
|
(import-macros {: g! : exec : map! : set!} :hibiscus.vim)
|
||||||
|
(import-macros {: setup} :macros)
|
||||||
|
|
||||||
|
; Theme
|
||||||
|
(g! :solarized_italic_comments true)
|
||||||
|
(g! :solarized_italic_keywords true)
|
||||||
|
(g! :solarized_italic_functions true)
|
||||||
|
(g! :solarized_italic_variables false)
|
||||||
|
(g! :solarized_contrast true)
|
||||||
|
(g! :solarized_borders false)
|
||||||
|
(g! :solarized_disable_background false)
|
||||||
|
((. (require :solarized) :set))
|
||||||
|
|
||||||
|
(require :popup)
|
||||||
|
|
||||||
|
; TreeSitter
|
||||||
|
(setup :nvim-treesitter.configs {
|
||||||
|
:ensure_installed [:c :lua :rust :java :python :javascript :typescript :fennel]
|
||||||
|
:sync_install false
|
||||||
|
:ignore_install []
|
||||||
|
:highlight {:enable true
|
||||||
|
:disable []
|
||||||
|
:additional_vim_regex_highlighting false}})
|
||||||
|
|
||||||
|
; Feline
|
||||||
|
(setup :feline {
|
||||||
|
:theme (require :feline.feline-solarized)
|
||||||
|
:force_inactive {:filetypes ["^neo\\-tree$"
|
||||||
|
"^aerial$"
|
||||||
|
"^packer$"
|
||||||
|
"^startify$"
|
||||||
|
"^fugitive$"
|
||||||
|
"^fugitiveblame$"
|
||||||
|
"^qf$"
|
||||||
|
"^help$"
|
||||||
|
"^DiffviewFileHistory"]
|
||||||
|
:buftypes ["^terminal$"]
|
||||||
|
:bufnames ["neo\\-.*"]}})
|
||||||
|
|
||||||
|
; Window picker
|
||||||
|
(setup :window-picker {
|
||||||
|
:autoselect_one true
|
||||||
|
:selection_chars "ABCDEFGHIJKLMNOP"
|
||||||
|
:filter_rules {:bo {:filetype [:NvimTree :neo-tree :notify :aerial]
|
||||||
|
:buftype [:terminal]}}})
|
||||||
|
|
||||||
|
; NeoTree
|
||||||
|
(g! :neo_tree_remove_legacy_commands 1)
|
||||||
|
(setup :neo-tree {
|
||||||
|
:close_if_last_window true
|
||||||
|
:window {:width 30
|
||||||
|
:mappings {:<cr> "open_with_window_picker"
|
||||||
|
:S "split_with_window_picker"
|
||||||
|
:s "vsplit_with_window_picker"}}
|
||||||
|
:filesystem {:filtered_items {:visible true}
|
||||||
|
:follow_current_file true
|
||||||
|
:window {:mappings {:/ "noop"
|
||||||
|
:g/ "fuzzy_finder"
|
||||||
|
:f "noop"
|
||||||
|
:ff (fn [] (exec [[:Telescope "find_files"]]))
|
||||||
|
:fg (fn [] (exec [[:Telescope "live_grep"]]))
|
||||||
|
:<S-Right> (fn [])
|
||||||
|
:<S-Left> (fn [])}}}
|
||||||
|
:renderers {:directory [[:indent]
|
||||||
|
[:icon]
|
||||||
|
[:current_filter]
|
||||||
|
[:name]
|
||||||
|
[:clipboard]
|
||||||
|
{1 "diagnostics" :errors_only true}]
|
||||||
|
:file [[:indent]
|
||||||
|
[:icon]
|
||||||
|
{1 "name" :use_git_status_colors true :zindex 10}
|
||||||
|
[:clipboard]
|
||||||
|
[:bufnr]
|
||||||
|
[:modified]
|
||||||
|
[:diagnostics]
|
||||||
|
[:git_status]]}})
|
||||||
|
(map! [n] :f ":Neotree focus<CR>")
|
||||||
|
|
||||||
|
; Smart splits
|
||||||
|
(local smart-splits (require :smart-splits))
|
||||||
|
(map! [n] :<C-Left> smart-splits.move_cursor_left)
|
||||||
|
(map! [n] :<C-Down> smart-splits.move_cursor_down)
|
||||||
|
(map! [n] :<C-Up> smart-splits.move_cursor_up)
|
||||||
|
(map! [n] :<C-Right> smart-splits.move_cursor_right)
|
||||||
|
(map! [n] :<C-S-Up> smart-splits.resize_up)
|
||||||
|
(map! [n] :<C-S-Down> smart-splits.resize_down)
|
||||||
|
(map! [n] :<C-S-Left> smart-splits.resize_left)
|
||||||
|
(map! [n] :<C-S-Right> smart-splits.resize_right)
|
||||||
|
|
||||||
|
(require :bufdelete)
|
||||||
|
|
||||||
|
; Bufferline
|
||||||
|
(local colors (require :solarized.colors))
|
||||||
|
(setup :bufferline {
|
||||||
|
:options {:close_command "Bdelete %d"
|
||||||
|
:right_mouse_command "Bdelete %d"
|
||||||
|
:offsets [{:filetype "neo-tree" :text "File Explorer" :padding 1}
|
||||||
|
{:filetype "aerial" :text "Outline" :padding 1}]
|
||||||
|
:enforce_regular_tabs true
|
||||||
|
:separator_style "slant"}
|
||||||
|
:highlights {:separator {:fg colors.bg_alt}
|
||||||
|
:separator_visible {:fg colors.bg_alt}
|
||||||
|
:separator_selected {:fg colors.bg_alt}}})
|
||||||
|
(map! [n] :<S-Right> ":bnext<CR>")
|
||||||
|
(map! [n] :<S-Left> ":bprevious<CR>")
|
||||||
|
(map! [n] :q ":Bdelete<CR>")
|
||||||
|
|
||||||
|
(setup :nvim-autopairs {})
|
||||||
|
|
||||||
|
(setup :gitsigns {})
|
||||||
|
|
||||||
|
(setup :cinnamon {})
|
||||||
|
|
||||||
|
; Aerial
|
||||||
|
(setup :aerial {
|
||||||
|
:close_behavior "global"
|
||||||
|
:open_automatic true
|
||||||
|
:placement_editor_edge true
|
||||||
|
:width 30
|
||||||
|
:on_attach (fn [bufnr] (vim.api.nvim_buf_set_keymap bufnr "n" "t"
|
||||||
|
((. (require :map_utils) :lua_fn) (fn [] (vim.tbl_map (fn [buf] (if (= (vim.api.nvim_buf_get_option buf "filetype") "aerial")
|
||||||
|
(vim.tbl_map (fn [win] (vim.api.nvim_set_current_win win))
|
||||||
|
(vim.fn.win_findbuf buf))))
|
||||||
|
(vim.api.nvim_list_bufs))))
|
||||||
|
{}))})
|
||||||
|
|
||||||
|
(setup :guess-indent)
|
||||||
|
|
||||||
|
; Telescope
|
||||||
|
(local actions (require :telescope.actions))
|
||||||
|
(setup :telescope {
|
||||||
|
:defaults {:mappings {:n {:S actions.file_split
|
||||||
|
:s actions.file_vsplit}}
|
||||||
|
:get_selection_window (. (require :window-picker) :pick_window)}
|
||||||
|
:pickers {:find_files {:find_command [:fd "--type" "f" "--strip-cwd-prefix" "--hidden"]}
|
||||||
|
:live_grep {:vimgrep_arguments ["rg" "--color=never" "--no-heading" "--with-filename" "--line-number" "--column" "--smart-case" "--hidden"]}}})
|
||||||
|
|
||||||
|
; DiffView
|
||||||
|
(setup :diffview {
|
||||||
|
:keymaps {:view {:q ":tabc<CR>"}
|
||||||
|
:file_panel {:q ":tabc<CR>"}
|
||||||
|
:file_history_panel {:q ":tabc<CR>"}}})
|
||||||
|
(map! [n] :r ":DiffviewOpen<CR>")
|
||||||
|
(map! [n] :R ":DiffviewFileHistory %<CR>")
|
||||||
|
|
||||||
|
; Null-LS
|
||||||
|
(setup :null-ls {
|
||||||
|
:sources [(. (. (. (require :null-ls) :builtins) :diagnostics) :flake8)]})
|
||||||
|
|
||||||
|
; VimTex
|
||||||
|
(g! :vimtex_view_method "zathura")
|
||||||
|
|
||||||
|
; General settings
|
||||||
|
(g! :maplocalleader ",")
|
||||||
|
(set! :clipboard "unnamedplus")
|
||||||
|
(set! :expandtab true)
|
||||||
|
(set! :fileencoding "utf-8")
|
||||||
|
(set! :ignorecase true)
|
||||||
|
(set! :mouse "a")
|
||||||
|
(set! :showmode false)
|
||||||
|
(set! :number true)
|
||||||
|
(set! :shiftwidth 2)
|
||||||
|
(set! :signcolumn "yes")
|
||||||
|
(set! :smartcase true)
|
||||||
|
(set! :spelllang "en")
|
||||||
|
(set! :tabstop 2)
|
||||||
|
|
||||||
|
; Startup
|
||||||
|
(if (or (= (vim.fn.expand "%") "") (not= (vim.fn.isdirectory (vim.fn.expand "%")) 0))
|
||||||
|
((. (require :neo-tree.command) :_command) (vim.fn.getcwd))
|
||||||
|
((. (require :neo-tree.command) :_command) "show" (vim.fn.getcwd)))
|
||||||
@@ -1 +1,5 @@
|
|||||||
(require :plugins)
|
(require :plugins)
|
||||||
|
|
||||||
|
(require :settings)
|
||||||
|
|
||||||
|
(require :lspconfig.settings)
|
||||||
|
|||||||
@@ -1,265 +0,0 @@
|
|||||||
require 'popup'
|
|
||||||
|
|
||||||
|
|
||||||
vim.g.solarized_italic_comments = true
|
|
||||||
vim.g.solarized_italic_keywords = true
|
|
||||||
vim.g.solarized_italic_functions = true
|
|
||||||
vim.g.solarized_italic_variables = false
|
|
||||||
vim.g.solarized_contrast = true
|
|
||||||
vim.g.solarized_borders = false
|
|
||||||
vim.g.solarized_disable_background = false
|
|
||||||
require('solarized').set()
|
|
||||||
|
|
||||||
|
|
||||||
require('nvim-treesitter.configs').setup {
|
|
||||||
ensure_installed = { "c", "lua", "rust", "java", "python", "javascript", "typescript" },
|
|
||||||
sync_install = false,
|
|
||||||
ignore_install = { },
|
|
||||||
|
|
||||||
highlight = {
|
|
||||||
enable = true,
|
|
||||||
disable = { },
|
|
||||||
additional_vim_regex_highlighting = false,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
require('feline').setup {
|
|
||||||
theme = require('feline.feline-solarized'),
|
|
||||||
force_inactive = {
|
|
||||||
filetypes = {
|
|
||||||
'^neo\\-tree$',
|
|
||||||
'^aerial$',
|
|
||||||
'^packer$',
|
|
||||||
'^startify$',
|
|
||||||
'^fugitive$',
|
|
||||||
'^fugitiveblame$',
|
|
||||||
'^qf$',
|
|
||||||
'^help$',
|
|
||||||
'^DiffviewFileHistory'
|
|
||||||
},
|
|
||||||
buftypes = {
|
|
||||||
'^terminal$'
|
|
||||||
},
|
|
||||||
bufnames = {
|
|
||||||
'neo\\-.*',
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
require('lspconfig/settings')
|
|
||||||
|
|
||||||
|
|
||||||
require('window-picker').setup({
|
|
||||||
autoselect_one = true,
|
|
||||||
selection_chars = 'ABCDEFGHIJKLMNOP',
|
|
||||||
filter_rules = {
|
|
||||||
bo = {
|
|
||||||
filetype = { 'NvimTree', "neo-tree", "notify", 'aerial' },
|
|
||||||
buftype = { 'terminal' }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
vim.cmd([[ let g:neo_tree_remove_legacy_commands = 1 ]])
|
|
||||||
require('neo-tree').setup({
|
|
||||||
close_if_last_window = true,
|
|
||||||
window = {
|
|
||||||
width = 30,
|
|
||||||
mappings = {
|
|
||||||
["<cr>"] = "open_with_window_picker",
|
|
||||||
["S"] = "split_with_window_picker",
|
|
||||||
["s"] = "vsplit_with_window_picker"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
filesystem = {
|
|
||||||
filtered_items = {
|
|
||||||
visible = true
|
|
||||||
},
|
|
||||||
follow_current_file = true,
|
|
||||||
window = {
|
|
||||||
mappings = {
|
|
||||||
["/"] = "noop",
|
|
||||||
["g/"] = "fuzzy_finder",
|
|
||||||
["f"] = "noop",
|
|
||||||
["ff"] = function() vim.cmd([[Telescope find_files]]) end,
|
|
||||||
["fg"] = function() vim.cmd([[Telescope live_grep]]) end,
|
|
||||||
["<S-Right>"] = function() end,
|
|
||||||
["<S-Left>"] = function() end
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
renderers = {
|
|
||||||
directory = {
|
|
||||||
{ "indent" },
|
|
||||||
{ "icon" },
|
|
||||||
{ "current_filter" },
|
|
||||||
{ "name" },
|
|
||||||
{ "clipboard" },
|
|
||||||
{ "diagnostics", errors_only = true }
|
|
||||||
},
|
|
||||||
file = {
|
|
||||||
{ "indent" },
|
|
||||||
{ "icon" },
|
|
||||||
{
|
|
||||||
"name",
|
|
||||||
use_git_status_colors = true,
|
|
||||||
zindex = 10
|
|
||||||
},
|
|
||||||
{ "clipboard" },
|
|
||||||
{ "bufnr" },
|
|
||||||
{ "modified" },
|
|
||||||
{ "diagnostics" },
|
|
||||||
{ "git_status" }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
vim.keymap.set("n", "f", "<cmd>Neotree focus<CR>")
|
|
||||||
|
|
||||||
|
|
||||||
require('smart-splits')
|
|
||||||
vim.keymap.set("n", "<C-Left>", require('smart-splits').move_cursor_left)
|
|
||||||
vim.keymap.set("n", "<C-Down>", require('smart-splits').move_cursor_down)
|
|
||||||
vim.keymap.set("n", "<C-Up>", require('smart-splits').move_cursor_up)
|
|
||||||
vim.keymap.set("n", "<C-Right>", require('smart-splits').move_cursor_right)
|
|
||||||
vim.keymap.set("n", "<C-S-Up>", require('smart-splits').resize_up)
|
|
||||||
vim.keymap.set("n", "<C-S-Down>", require('smart-splits').resize_down)
|
|
||||||
vim.keymap.set("n", "<C-S-Left>", require('smart-splits').resize_left)
|
|
||||||
vim.keymap.set("n", "<C-S-Right>", require('smart-splits').resize_right)
|
|
||||||
|
|
||||||
|
|
||||||
require('bufdelete')
|
|
||||||
|
|
||||||
|
|
||||||
local colors = require('solarized.colors')
|
|
||||||
require('bufferline').setup{
|
|
||||||
options = {
|
|
||||||
close_command = "Bdelete %d",
|
|
||||||
right_mouse_command = "Bdelete %d",
|
|
||||||
offsets = {
|
|
||||||
{filetype = "neo-tree", text = "File Explorer", padding = 1},
|
|
||||||
{filetype = "aerial", text = "Outline", padding = 1}
|
|
||||||
},
|
|
||||||
enforce_regular_tabs = true,
|
|
||||||
separator_style = 'slant'
|
|
||||||
},
|
|
||||||
highlights = {
|
|
||||||
separator = {
|
|
||||||
fg = colors.bg_alt
|
|
||||||
},
|
|
||||||
separator_visible = {
|
|
||||||
fg = colors.bg_alt
|
|
||||||
},
|
|
||||||
separator_selected = {
|
|
||||||
fg = colors.bg_alt
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
vim.keymap.set("n", "<S-Right>", "<cmd>bnext<CR>")
|
|
||||||
vim.keymap.set("n", "<S-Left>", "<cmd>bprevious<CR>")
|
|
||||||
vim.keymap.set("n", "q", "<cmd>Bdelete<CR>")
|
|
||||||
|
|
||||||
|
|
||||||
require('nvim-autopairs').setup()
|
|
||||||
|
|
||||||
|
|
||||||
require('gitsigns').setup()
|
|
||||||
|
|
||||||
|
|
||||||
require('cinnamon').setup()
|
|
||||||
|
|
||||||
|
|
||||||
require('aerial').setup({
|
|
||||||
close_behavior = 'global',
|
|
||||||
open_automatic = true,
|
|
||||||
placement_editor_edge = true,
|
|
||||||
width = 30,
|
|
||||||
on_attach = function(bufnr)
|
|
||||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', 't',
|
|
||||||
require('map_utils').lua_fn(function()
|
|
||||||
vim.tbl_map(function(buf)
|
|
||||||
if vim.api.nvim_buf_get_option(buf, 'filetype') == 'aerial' then
|
|
||||||
vim.tbl_map(function(win)
|
|
||||||
vim.api.nvim_set_current_win(win)
|
|
||||||
end, vim.fn.win_findbuf(buf))
|
|
||||||
end
|
|
||||||
end, vim.api.nvim_list_bufs())
|
|
||||||
end),
|
|
||||||
{})
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
require('guess-indent').setup()
|
|
||||||
|
|
||||||
|
|
||||||
local actions = require("telescope.actions")
|
|
||||||
require('telescope').setup({
|
|
||||||
defaults = {
|
|
||||||
mappings = {
|
|
||||||
n = {
|
|
||||||
["S"] = actions.file_split,
|
|
||||||
["s"] = actions.file_vsplit,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
get_selection_window = require('window-picker').pick_window
|
|
||||||
},
|
|
||||||
pickers = {
|
|
||||||
find_files = {
|
|
||||||
find_command = {"fd", "--type", "f", "--strip-cwd-prefix", "--hidden"}
|
|
||||||
},
|
|
||||||
live_grep = {
|
|
||||||
vimgrep_arguments = {"rg", "--color=never", "--no-heading", "--with-filename", "--line-number", "--column", "--smart-case", "--hidden"}
|
|
||||||
},
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
require('diffview').setup({
|
|
||||||
keymaps = {
|
|
||||||
view = {
|
|
||||||
["q"] = "<cmd>tabc<CR>"
|
|
||||||
},
|
|
||||||
file_panel = {
|
|
||||||
["q"] = "<cmd>tabc<CR>"
|
|
||||||
},
|
|
||||||
file_history_panel = {
|
|
||||||
["q"] = "<cmd>tabc<CR>"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
vim.keymap.set("n", "r", "<cmd>DiffviewOpen<CR>")
|
|
||||||
vim.keymap.set("n", "R", "<cmd>DiffviewFileHistory %<CR>")
|
|
||||||
|
|
||||||
|
|
||||||
require("null-ls").setup({
|
|
||||||
sources = {
|
|
||||||
require("null-ls").builtins.diagnostics.flake8
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
vim.g.vimtex_view_method = 'zathura'
|
|
||||||
|
|
||||||
|
|
||||||
vim.g.maplocalleader = ','
|
|
||||||
vim.o.clipboard = 'unnamedplus'
|
|
||||||
vim.o.expandtab = true
|
|
||||||
vim.o.fileencoding = 'utf-8'
|
|
||||||
vim.o.ignorecase = true
|
|
||||||
vim.o.mouse = 'a'
|
|
||||||
vim.o.showmode = false
|
|
||||||
vim.o.number = true
|
|
||||||
vim.o.shiftwidth = 2
|
|
||||||
vim.o.signcolumn = 'yes'
|
|
||||||
vim.o.smartcase = true
|
|
||||||
vim.o.spelllang = 'en'
|
|
||||||
vim.o.tabstop = 2
|
|
||||||
|
|
||||||
|
|
||||||
if vim.fn.expand('%') == '' or vim.fn.isdirectory(vim.fn.expand('%')) ~= 0 then
|
|
||||||
require("neo-tree.command")._command(vim.fn.getcwd())
|
|
||||||
else
|
|
||||||
require("neo-tree.command")._command("show", vim.fn.getcwd())
|
|
||||||
end
|
|
||||||
Reference in New Issue
Block a user