fix: yazi opener
This commit is contained in:
parent
27482b20d7
commit
53b83b3471
4 changed files with 58 additions and 41 deletions
|
|
@ -1,5 +1,6 @@
|
|||
{
|
||||
osConfig,
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
|
|
@ -7,7 +8,7 @@
|
|||
}:
|
||||
let
|
||||
inherit (lib.generators) mkLuaInline;
|
||||
inherit (lib) concatStringsSep;
|
||||
inherit (lib) concatStringsSep optionalString;
|
||||
|
||||
suda-nvim = pkgs.vimUtils.buildVimPlugin {
|
||||
name = "vim-suda";
|
||||
|
|
@ -23,6 +24,8 @@ let
|
|||
name = "marks-nvim";
|
||||
src = inputs.marks-nvim;
|
||||
};
|
||||
|
||||
yaziOpenDir = config.programs.nvf.settings.vim.utility.yazi-nvim.setupOpts.open_for_directories;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
|
|
@ -44,6 +47,9 @@ in
|
|||
vim = {
|
||||
enableLuaLoader = true;
|
||||
vimAlias = true;
|
||||
luaConfigPre = ''
|
||||
${optionalString yaziOpenDir "vim.g.loaded_netrwPlugin = 1"}
|
||||
'';
|
||||
extraPackages = with pkgs; [
|
||||
nixfmt
|
||||
];
|
||||
|
|
@ -535,6 +541,7 @@ in
|
|||
|
||||
yazi-nvim = {
|
||||
enable = true;
|
||||
setupOpts.open_for_directories = true;
|
||||
mappings.openYaziDir = "<leader>-";
|
||||
mappings.openYazi = "<leader>e";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
osConfig,
|
||||
...
|
||||
|
|
@ -11,6 +12,17 @@ let
|
|||
dataDir = "${config.home.homeDirectory}/${relativeDir}";
|
||||
in
|
||||
{
|
||||
programs.nvf.settings.vim.extraPackages = with pkgs; [
|
||||
imagemagick # for image.nvim
|
||||
];
|
||||
|
||||
programs.nvf.settings.vim.utility.images.image-nvim = {
|
||||
enable = true;
|
||||
setupOpts = {
|
||||
backend = "kitty";
|
||||
};
|
||||
};
|
||||
|
||||
programs.nvf.settings.vim.utility.leetcode-nvim = {
|
||||
enable = true;
|
||||
setupOpts = {
|
||||
|
|
@ -18,7 +30,7 @@ in
|
|||
lang = "rust";
|
||||
plugins.non_standalone = true;
|
||||
storage.home = mkLuaInline ''"${dataDir}"'';
|
||||
injector = mkLuaInline ''
|
||||
injector = mkLuaInline /* lua */ ''
|
||||
{
|
||||
['rust'] = {
|
||||
before = { '#[allow(dead_code)]', 'fn main() {}', '#[allow(dead_code)]', 'struct Solution;' },
|
||||
|
|
@ -26,42 +38,39 @@ in
|
|||
}
|
||||
'';
|
||||
hooks."question_enter" = [
|
||||
(mkLuaInline
|
||||
# lua
|
||||
''
|
||||
function (question)
|
||||
if question.lang ~= 'rust' then
|
||||
return
|
||||
end
|
||||
|
||||
local config = require("leetcode.config")
|
||||
local problem_dir = config.user.storage.home .. "/Cargo.toml"
|
||||
local content = [[
|
||||
[package]
|
||||
name = "leetcode"
|
||||
edition = "2024"
|
||||
|
||||
[lib]
|
||||
name = "%s"
|
||||
path = "%s"
|
||||
|
||||
[dependencies]
|
||||
rand = "0.8"
|
||||
regex = "1"
|
||||
itertools = "0.14.0"
|
||||
]]
|
||||
|
||||
local file = io.open(problem_dir, "w")
|
||||
if file then
|
||||
local formatted = (content:gsub(" +", "")):format(question.q.frontend_id, question:path())
|
||||
file:write(formatted)
|
||||
file:close()
|
||||
else
|
||||
print("Failed to open file " .. problem_dir)
|
||||
end
|
||||
(mkLuaInline /* lua */ ''
|
||||
function (question)
|
||||
if question.lang ~= 'rust' then
|
||||
return
|
||||
end
|
||||
''
|
||||
)
|
||||
|
||||
local config = require("leetcode.config")
|
||||
local problem_dir = config.user.storage.home .. "/Cargo.toml"
|
||||
local content = [[
|
||||
[package]
|
||||
name = "leetcode"
|
||||
edition = "2024"
|
||||
|
||||
[lib]
|
||||
name = "%s"
|
||||
path = "%s"
|
||||
|
||||
[dependencies]
|
||||
rand = "0.8"
|
||||
regex = "1"
|
||||
itertools = "0.14.0"
|
||||
]]
|
||||
|
||||
local file = io.open(problem_dir, "w")
|
||||
if file then
|
||||
local formatted = (content:gsub(" +", "")):format(question.q.frontend_id, question:path())
|
||||
file:write(formatted)
|
||||
file:close()
|
||||
else
|
||||
print("Failed to open file " .. problem_dir)
|
||||
end
|
||||
end
|
||||
'')
|
||||
];
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ in
|
|||
opener = {
|
||||
edit = [
|
||||
{
|
||||
run = ''''\${EDITOR:=nvim} "$0"'';
|
||||
run = ''''\${EDITOR:=nvim} "$1"'';
|
||||
desc = "$EDITOR";
|
||||
block = true;
|
||||
}
|
||||
|
|
@ -77,12 +77,12 @@ in
|
|||
];
|
||||
|
||||
player = [
|
||||
{ run = ''mpv --force-window "$0"''; }
|
||||
{ run = ''mpv --force-window "$1"''; }
|
||||
];
|
||||
|
||||
open = [
|
||||
{
|
||||
run = ''xdg-open "$0"'';
|
||||
run = ''xdg-open "$1"'';
|
||||
desc = "Open";
|
||||
}
|
||||
];
|
||||
|
|
|
|||
|
|
@ -171,8 +171,9 @@ in
|
|||
"application/xhtml+xml"
|
||||
"application/json"
|
||||
"application/pdf"
|
||||
"text/plain"
|
||||
"text/html"
|
||||
"image/png"
|
||||
"image/jpeg"
|
||||
]
|
||||
);
|
||||
in
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue