From 2d68bd29e4b887ec593687965c6eeb2fd436c57c Mon Sep 17 00:00:00 2001 From: ttak0422 Date: Fri, 2 Aug 2024 21:52:23 +0900 Subject: [PATCH] wip --- fnl/dropbar.fnl | 87 +++++++++++++++++++++++++++++++++++++ fnl/hook-buffer.fnl | 1 + lua/autogen/dropbar.lua | 20 +++++++++ lua/autogen/hook-buffer.lua | 2 +- main/default.nix | 9 ++-- main/style.nix | 15 +++++++ 6 files changed, 129 insertions(+), 5 deletions(-) create mode 100644 fnl/dropbar.fnl create mode 100644 lua/autogen/dropbar.lua diff --git a/fnl/dropbar.fnl b/fnl/dropbar.fnl new file mode 100644 index 0000000..2118a8e --- /dev/null +++ b/fnl/dropbar.fnl @@ -0,0 +1,87 @@ +(let [M (setmetatable {:utils (require :dropbar.utils) + :api (require :dropbar.api) + :sources (require :dropbar.sources)} + {:__index (require :dropbar)}) + general {:update_events {:win [:CursorMoved :InsertLeave :WinResized] + :buf [:BufModifiedSet :FileChangedShellPost] + :global [:DirChanged :VimResized]}} + icons (let [kinds {:use_devicons true + :symbols {:Array "" + :Boolean "" + :BreakStatement "" + :Call "" + :CaseStatement "" + :Class "" + :Color "" + :Constant "" + :Constructor "" + :ContinueStatement "" + :Copilot "" + :Declaration "" + :Delete "" + :DoStatement "" + :Enum "" + :EnumMember "" + :Event "" + :Field "" + :File "" + :Folder "" + :ForStatement "" + :Function "" + :H1Marker "" + :H2Marker "" + :H3Marker "" + :H4Marker "" + :H5Marker "" + :H6Marker "" + :Identifier "" + :IfStatement "" + :Interface "" + :Keyword "" + :List "" + :Log "" + :Lsp "" + :Macro "" + :MarkdownH1 "" + :MarkdownH2 "" + :MarkdownH3 "" + :MarkdownH4 "" + :MarkdownH5 "" + :MarkdownH6 "" + :Method "" + :Module "" + :Namespace "" + :Null "" + :Number "" + :Object "" + :Operator "" + :Package "" + :Pair "" + :Property "" + :Reference "" + :Regex "" + :Repeat "" + :Scope "" + :Snippet "" + :Specifier "" + :Statement "" + :String "" + :Struct "" + :SwitchStatement "" + :Terminal "" + :Text "" + :Type "" + :TypeParameter "" + :Unit "" + :Value "fnl/test" + :Variable "" + :WhileStatement ""}} + ui {:bar {:separator "  " :extends "…"} + :menu {:separator " " :indicator "  "}}] + {:enable true : kinds : ui}) + bar {:sources (fn [buf _] + (print (. vim.bo buf :buftype)) + (if (= (. vim.bo buf :buftype) :terminal) + [M.sources.terminal] + [M.sources.path]))}] + (M.setup {: general : icons : bar})) diff --git a/fnl/hook-buffer.fnl b/fnl/hook-buffer.fnl index 063ee79..5478c51 100644 --- a/fnl/hook-buffer.fnl +++ b/fnl/hook-buffer.fnl @@ -56,6 +56,7 @@ [:gP (lcmd "require('goto-preview').close_all_win()") (desc "close all preview")] + [:gb (lcmd "require('dropbar.api').pick()") (desc :pick)] ;; debug [: (lcmd "require('dap').continue()") (desc :continue)] [: (lcmd "require('dap').step_over()") (desc "step over")] diff --git a/lua/autogen/dropbar.lua b/lua/autogen/dropbar.lua new file mode 100644 index 0000000..8961a6a --- /dev/null +++ b/lua/autogen/dropbar.lua @@ -0,0 +1,20 @@ +-- [nfnl] Compiled from fnl/dropbar.fnl by https://github.com/Olical/nfnl, do not edit. +local M = setmetatable({utils = require("dropbar.utils"), api = require("dropbar.api"), sources = require("dropbar.sources")}, {__index = require("dropbar")}) +local general = {update_events = {win = {"CursorMoved", "InsertLeave", "WinResized"}, buf = {"BufModifiedSet", "FileChangedShellPost"}, global = {"DirChanged", "VimResized"}}} +local icons +do + local kinds = {use_devicons = true, symbols = {Array = "", Boolean = "", BreakStatement = "", Call = "", CaseStatement = "", Class = "", Color = "", Constant = "", Constructor = "", ContinueStatement = "", Copilot = "", Declaration = "", Delete = "", DoStatement = "", Enum = "", EnumMember = "", Event = "", Field = "", File = "", Folder = "", ForStatement = "", Function = "", H1Marker = "", H2Marker = "", H3Marker = "", H4Marker = "", H5Marker = "", H6Marker = "", Identifier = "", IfStatement = "", Interface = "", Keyword = "", List = "", Log = "", Lsp = "", Macro = "", MarkdownH1 = "", MarkdownH2 = "", MarkdownH3 = "", MarkdownH4 = "", MarkdownH5 = "", MarkdownH6 = "", Method = "", Module = "", Namespace = "", Null = "", Number = "", Object = "", Operator = "", Package = "", Pair = "", Property = "", Reference = "", Regex = "", Repeat = "", Scope = "", Snippet = "", Specifier = "", Statement = "", String = "", Struct = "", SwitchStatement = "", Terminal = "", Text = "", Type = "", TypeParameter = "", Unit = "", Value = "fnl/test", Variable = "", WhileStatement = ""}} + local ui = {bar = {separator = " \239\145\160 ", extends = "\226\128\166"}, menu = {separator = " ", indicator = " \239\145\160 "}} + icons = {enable = true, kinds = kinds, ui = ui} +end +local bar +local function _1_(buf, _) + print(vim.bo[buf].buftype) + if (vim.bo[buf].buftype == "terminal") then + return {M.sources.terminal} + else + return {M.sources.path} + end +end +bar = {sources = _1_} +return M.setup({general = general, icons = icons, bar = bar}) diff --git a/lua/autogen/hook-buffer.lua b/lua/autogen/hook-buffer.lua index bd81cfe..fa55e44 100644 --- a/lua/autogen/hook-buffer.lua +++ b/lua/autogen/hook-buffer.lua @@ -31,7 +31,7 @@ local function _5_() local dapui = require("dapui") return dapui.toggle({reset = true}) end -N = {{"gpd", lcmd("require('goto-preview').goto_preview_definition()"), desc("preview definition")}, {"gpi", lcmd("require('goto-preview').goto_preview_implementation()"), desc("preview implementation")}, {"gpr", lcmd("require('goto-preview').goto_preview_references()"), desc("preview references")}, {"gP", lcmd("require('goto-preview').close_all_win()"), desc("close all preview")}, {"", lcmd("require('dap').continue()"), desc("continue")}, {"", lcmd("require('dap').step_over()"), desc("step over")}, {"", lcmd("require('dap').step_into()"), desc("step into")}, {"", lcmd("require('dap').step_out()"), desc("step out")}, {"db", lcmd("require('dap').toggle_breakpoint()"), desc("dap toggle breakpoint")}, {"dB", _4_, desc("dap set breakpoint with condition")}, {"dr", lcmd("require('dap').repl.toggle()"), desc("dap toggle repl")}, {"dl", lcmd("require('dap').run_last()"), desc("dap run last")}, {"dd", _5_, desc("dap toggle ui")}} +N = {{"gpd", lcmd("require('goto-preview').goto_preview_definition()"), desc("preview definition")}, {"gpi", lcmd("require('goto-preview').goto_preview_implementation()"), desc("preview implementation")}, {"gpr", lcmd("require('goto-preview').goto_preview_references()"), desc("preview references")}, {"gP", lcmd("require('goto-preview').close_all_win()"), desc("close all preview")}, {"gb", lcmd("require('dropbar.api').pick()"), desc("pick")}, {"", lcmd("require('dap').continue()"), desc("continue")}, {"", lcmd("require('dap').step_over()"), desc("step over")}, {"", lcmd("require('dap').step_into()"), desc("step into")}, {"", lcmd("require('dap').step_out()"), desc("step out")}, {"db", lcmd("require('dap').toggle_breakpoint()"), desc("dap toggle breakpoint")}, {"dB", _4_, desc("dap set breakpoint with condition")}, {"dr", lcmd("require('dap').repl.toggle()"), desc("dap toggle repl")}, {"dl", lcmd("require('dap').run_last()"), desc("dap run last")}, {"dd", _5_, desc("dap toggle ui")}} local V = {{"K", lcmd("require('dapui').eval()"), desc("dap evaluate expression")}} local OTHER = {{{"n", "x"}, "gs", lcmd("require('reacher').start()")}, {{"n", "x"}, "gS", lcmd("require('reacher').start_multiple()"), desc("search displayed")}, {{"n", "i", "c", "t"}, "\194\165", "\\"}} for _, k in ipairs(N) do diff --git a/main/default.nix b/main/default.nix index 14d74d7..0c59028 100644 --- a/main/default.nix +++ b/main/default.nix @@ -123,15 +123,16 @@ let neogen ; inherit (callPackage ./style.nix { }) - glance - dressing + NeoZoom ambiwidth codewindow colorizer + dressing + dropbar + glance heirline - NeoZoom - notify noice + notify numb statuscol tint diff --git a/main/style.nix b/main/style.nix index a03b55c..28ef7f9 100644 --- a/main/style.nix +++ b/main/style.nix @@ -7,6 +7,7 @@ let motion = callPackage ./motion.nix { }; search = callPackage ./search.nix { }; treesitter = callPackage ./treesitter.nix { }; + language = callPackage ./language.nix { }; in with pkgs.vimPlugins; rec { @@ -116,5 +117,19 @@ rec { code = read ../lua/autogen/winsep.lua; args.exclude_ft_path = ../lua/autogen/exclude_ft.lua; }; + hooks.events = [ "WinNew" ]; + }; + dropbar = { + package = dropbar-nvim; + depends = [ + language.lsp + search.telescope + treesitter.treesitter + ]; + postConfig = read ../lua/autogen/dropbar.lua; + hooks = { + userEvents = [ "SpecificFileEnter" ]; + modules = [ "dropbar.api" ]; + }; }; }