From cb49c2cb7a9c528f8f91fa54b2d71ad36ec442e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20Dom=C3=ADnguez?= Date: Sat, 10 May 2025 09:21:19 -0400 Subject: [PATCH] remove since I no longer use it --- .config/yazi/plugins/starship.yazi/LICENSE | 21 ---- .config/yazi/plugins/starship.yazi/README.md | 108 ---------------- .config/yazi/plugins/starship.yazi/main.lua | 123 ------------------- 3 files changed, 252 deletions(-) delete mode 100644 .config/yazi/plugins/starship.yazi/LICENSE delete mode 100644 .config/yazi/plugins/starship.yazi/README.md delete mode 100644 .config/yazi/plugins/starship.yazi/main.lua diff --git a/.config/yazi/plugins/starship.yazi/LICENSE b/.config/yazi/plugins/starship.yazi/LICENSE deleted file mode 100644 index c03ce66..0000000 --- a/.config/yazi/plugins/starship.yazi/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2024 Rolv Apneseth - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/.config/yazi/plugins/starship.yazi/README.md b/.config/yazi/plugins/starship.yazi/README.md deleted file mode 100644 index b2b4dd8..0000000 --- a/.config/yazi/plugins/starship.yazi/README.md +++ /dev/null @@ -1,108 +0,0 @@ -# starship.yazi - -Starship prompt plugin for [Yazi](https://github.com/sxyazi/yazi) - - - -## Requirements - -- [Yazi](https://github.com/sxyazi/yazi) (v25.4.8+) -- [starship](https://github.com/starship/starship) - -## Installation - -```bash -ya pack -a Rolv-Apneseth/starship -``` - -### Manual - -```sh -# Linux / MacOS -git clone https://github.com/Rolv-Apneseth/starship.yazi.git ~/.config/yazi/plugins/starship.yazi -# Windows -git clone https://github.com/Rolv-Apneseth/starship.yazi.git %AppData%\yazi\config\plugins\starship.yazi -``` - -## Usage - -Add this to `~/.config/yazi/init.lua`: - -```lua -require("starship"):setup() -``` - -Make sure you have [starship](https://github.com/starship/starship) installed and in your `PATH`. - -## Config - -Here is an example with all available config options: - -```lua -require("starship"):setup({ - -- Hide flags (such as filter, find and search). This is recommended for starship themes which - -- are intended to go across the entire width of the terminal. - hide_flags = false, -- Default: false - -- Whether to place flags after the starship prompt. False means the flags will be placed before the prompt. - flags_after_prompt = true, -- Default: true - -- Custom starship configuration file to use - config_file = "~/.config/starship_full.toml", -- Default: nil -}) -``` - -## Extra - -If you use a `starship` theme with a background colour, it might look a bit to cramped on just the one line `Yazi` gives the header by default. To fix this, you can add this to your `init.lua`: - -
-Click to expand - -```lua -local old_build = Tab.build - -Tab.build = function(self, ...) - local bar = function(c, x, y) - if x <= 0 or x == self._area.w - 1 then - return ui.Bar(ui.Bar.TOP):area(ui.Rect.default) - end - - return ui.Bar(ui.Bar.TOP) - :area(ui.Rect({ - x = x, - y = math.max(0, y), - w = ya.clamp(0, self._area.w - x, 1), - h = math.min(1, self._area.h), - })) - :symbol(c) - end - - local c = self._chunks - self._chunks = { - c[1]:pad(ui.Pad.y(1)), - c[2]:pad(ui.Pad(1, c[3].w > 0 and 0 or 1, 1, c[1].w > 0 and 0 or 1)), - c[3]:pad(ui.Pad.y(1)), - } - - local style = th.mgr.border_style - self._base = ya.list_merge(self._base or {}, { - ui.Bar(ui.Bar.RIGHT):area(self._chunks[1]):style(style), - ui.Bar(ui.Bar.LEFT):area(self._chunks[1]):style(style), - - bar("┬", c[1].right - 1, c[1].y), - bar("┴", c[1].right - 1, c[1].bottom - 1), - bar("┬", c[2].right, c[2].y), - bar("┴", c[2].right, c[2].bottom - 1), - }) - - old_build(self, ...) -end -``` - -
- -> [!NOTE] -> This works by overriding your `Tab.build` function so make sure this is the only place you're doing that in your config. For example, this would be incompatible with the [full-border plugin](https://github.com/yazi-rs/plugins/tree/main/full-border.yazi) - -## Thanks - -- [sxyazi](https://github.com/sxyazi) for providing the code for this plugin and the demo video [in this comment](https://github.com/sxyazi/yazi/issues/767#issuecomment-1977082834) diff --git a/.config/yazi/plugins/starship.yazi/main.lua b/.config/yazi/plugins/starship.yazi/main.lua deleted file mode 100644 index c4d3943..0000000 --- a/.config/yazi/plugins/starship.yazi/main.lua +++ /dev/null @@ -1,123 +0,0 @@ ---- @since 25.4.8 - --- For development ---[[ local function notify(message) ]] ---[[ ya.notify({ title = "Starship", content = message, timeout = 3 }) ]] ---[[ end ]] - -local save = ya.sync(function(st, _cwd, output) - st.output = output - ya.render() -end) - --- Helper function for accessing the `config_file` state variable ----@return string -local get_config_file = ya.sync(function(st) - return st.config_file -end) - -return { - ---User arguments for setup method - ---@class SetupArgs - ---@field config_file string Absolute path to a starship config file - ---@field hide_flags boolean Whether to hide all flags (such as filter and search). Recommended for themes which are intended to take the full width of the terminal. - ---@field flags_after_prompt boolean Whether to place flags (such as filter and search) after the starship prompt. By default this is true. - - --- Setup plugin - --- @param st table State - --- @param args SetupArgs|nil - setup = function(st, args) - local hide_flags = false - local flags_after_prompt = true - - -- Check setup args - if args ~= nil then - if args.config_file ~= nil then - local url = Url(args.config_file) - if url.is_regular then - local config_file = args.config_file - - -- Manually replace '~' and '$HOME' at the start of the path with the OS environment variable - local home = os.getenv("HOME") - if home then - home = tostring(home) - config_file = config_file:gsub("^~", home):gsub("^$HOME", home) - end - - st.config_file = config_file - end - end - - if args.hide_flags ~= nil then - hide_flags = args.hide_flags - end - - if args.flags_after_prompt ~= nil then - flags_after_prompt = args.flags_after_prompt - end - end - - -- Replace default header widget - Header:children_remove(1, Header.LEFT) - Header:children_add(function(self) - local max = self._area.w - self._right_width - if max <= 0 then - return "" - end - - if hide_flags or not st.output then - return ui.Line.parse(st.output or "") - end - - -- Split `st.output` at the first line break (or keep as is if none was found) - local output = st.output:match("([^\n]*)\n?") or st.output - - local flags = self:flags() - if flags_after_prompt then - output = output .. " " .. flags - else - output = flags .. " " .. output - end - - return ui.Line.parse(output) - end, 1000, Header.LEFT) - - -- Pass current working directory and custom config path (if specified) to the plugin's entry point - ---Callback for subscribers to update the prompt - local callback = function() - local cwd = cx.active.current.cwd - if st.cwd ~= cwd then - st.cwd = cwd - - ya.manager_emit("plugin", { - st._id, - ya.quote(tostring(cwd), true), - }) - end - end - - -- Subscribe to events - ps.sub("cd", callback) - ps.sub("tab", callback) - end, - - entry = function(_, job) - local args = job.args - local command = Command("starship") - :arg("prompt") - :stdin(Command.INHERIT) - :cwd(args[1]) - :env("STARSHIP_SHELL", "") - - -- Point to custom starship config - local config_file = get_config_file() - if config_file then - command = command:env("STARSHIP_CONFIG", config_file) - end - - local output = command:output() - if output then - save(args[1], output.stdout:gsub("^%s+", "")) - end - end, -}