mirror of
https://github.com/dwinkler1/nvimConfig.git
synced 2026-05-22 20:13:32 -04:00
Compare commits
4 commits
4884bf685f
...
22809d94cd
| Author | SHA1 | Date | |
|---|---|---|---|
| 22809d94cd | |||
| 55866137ba | |||
| 1055522af9 | |||
| 07d2156dfb |
10 changed files with 89 additions and 14 deletions
5
.Rprofile
Normal file
5
.Rprofile
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
if (Sys.getenv("RNVIM_TMPDIR") == "") {
|
||||||
|
options(defaultPackages = c("utils", "grDevices", "graphics", "stats", "methods"))
|
||||||
|
} else {
|
||||||
|
options(defaultPackages = c("utils", "grDevices", "graphics", "stats", "methods", "nvimcom"))
|
||||||
|
}
|
||||||
8
.commandcode/taste/taste.md
Normal file
8
.commandcode/taste/taste.md
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
# nix
|
||||||
|
- For R.nvim in the Nix wrapper, both RNVIM_COMPLDIR (C server compilation) and a writable R_LIBS_USER directory (nvimcom R package installation) must be configured — fixing only one leaves permission errors in the other. Confidence: 0.65
|
||||||
|
- For R.nvim writable directories (RNVIM_COMPLDIR, R_LIBS_USER, TMPDIR), prefer project-local paths (e.g., $PWD/.Rlibs) over global cache paths — the cache approach may let the build succeed but still fail at runtime. Confidence: 0.70
|
||||||
|
|
||||||
|
# Taste (Continuously Learned by [CommandCode][cmd])
|
||||||
|
|
||||||
|
[cmd]: https://commandcode.ai/
|
||||||
|
|
||||||
38
flake.lock
generated
38
flake.lock
generated
|
|
@ -22,11 +22,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1777954456,
|
"lastModified": 1778443072,
|
||||||
"narHash": "sha256-hGdgeU2Nk87RAuZyYjyDjFL6LK7dAZN5RE9+hrDTkDU=",
|
"narHash": "sha256-zi7/fsqM/kFdNuED//4WOCUtezGtKKqRNORjMvfwjnA=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "549bd84d6279f9852cae6225e372cc67fb91a4c1",
|
"rev": "da5ad661ba4e5ef59ba743f0d112cbc30e474f32",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -69,6 +69,29 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"r-nvim-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"rixpkgs"
|
||||||
|
],
|
||||||
|
"rnvimsrc": [
|
||||||
|
"plugins-r"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1778641093,
|
||||||
|
"narHash": "sha256-Cq0spPQCYJkyHFTBTXqjmbq663kIVZA63/TQkTzE4ps=",
|
||||||
|
"owner": "dwinkler1",
|
||||||
|
"repo": "r_nvim_nix",
|
||||||
|
"rev": "435103d25d56dbe43197f7969cf535fda17ff597",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "dwinkler1",
|
||||||
|
"repo": "r_nvim_nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"rixpkgs": {
|
"rixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771303851,
|
"lastModified": 1771303851,
|
||||||
|
|
@ -80,8 +103,8 @@
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "dwinkler1",
|
"owner": "dwinkler1",
|
||||||
"ref": "nixpkgs",
|
|
||||||
"repo": "rixpkgs",
|
"repo": "rixpkgs",
|
||||||
|
"rev": "af2dd3f7b4b172077747c0869d4e30702fb71b0e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -91,6 +114,7 @@
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"plugins-cmp-pandoc-references": "plugins-cmp-pandoc-references",
|
"plugins-cmp-pandoc-references": "plugins-cmp-pandoc-references",
|
||||||
"plugins-r": "plugins-r",
|
"plugins-r": "plugins-r",
|
||||||
|
"r-nvim-nix": "r-nvim-nix",
|
||||||
"rixpkgs": "rixpkgs",
|
"rixpkgs": "rixpkgs",
|
||||||
"wrappers": "wrappers"
|
"wrappers": "wrappers"
|
||||||
}
|
}
|
||||||
|
|
@ -102,11 +126,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1777991014,
|
"lastModified": 1778560014,
|
||||||
"narHash": "sha256-0DS24OW9d9iz+w0LCz6KpS2IpE2z2gHxeBdMZg9xpDY=",
|
"narHash": "sha256-Hu9RMo7vJt/4dx/vAvyG+cE9RBwpaH1ouyunvruYaDI=",
|
||||||
"owner": "BirdeeHub",
|
"owner": "BirdeeHub",
|
||||||
"repo": "nix-wrapper-modules",
|
"repo": "nix-wrapper-modules",
|
||||||
"rev": "dc5184095ad488e937ec308b52c9c0b218959d8b",
|
"rev": "e30aa99c9c7038e16efae3cad7916a47307a9e36",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
||||||
22
flake.nix
22
flake.nix
|
|
@ -10,7 +10,11 @@
|
||||||
url = "github:BirdeeHub/nix-wrapper-modules";
|
url = "github:BirdeeHub/nix-wrapper-modules";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
rixpkgs.url = "github:dwinkler1/rixpkgs/nixpkgs";
|
rixpkgs.url = "github:dwinkler1/rixpkgs/af2dd3f7b4b172077747c0869d4e30702fb71b0e";
|
||||||
|
|
||||||
|
r-nvim-nix.url = "github:dwinkler1/r_nvim_nix";
|
||||||
|
r-nvim-nix.inputs.rnvimsrc.follows = "plugins-r";
|
||||||
|
r-nvim-nix.inputs.nixpkgs.follows = "rixpkgs";
|
||||||
|
|
||||||
fran = {
|
fran = {
|
||||||
url = "github:dwinkler1/fran";
|
url = "github:dwinkler1/fran";
|
||||||
|
|
@ -46,7 +50,7 @@
|
||||||
nix = true;
|
nix = true;
|
||||||
optional = false;
|
optional = false;
|
||||||
python = false;
|
python = false;
|
||||||
r = false;
|
r = true;
|
||||||
};
|
};
|
||||||
settings = {
|
settings = {
|
||||||
lang_packages = {
|
lang_packages = {
|
||||||
|
|
@ -61,6 +65,7 @@
|
||||||
janitor
|
janitor
|
||||||
languageserver
|
languageserver
|
||||||
styler
|
styler
|
||||||
|
pkgs.nvimcom
|
||||||
];
|
];
|
||||||
julia = ["DataFramesMeta" "QuackIO"];
|
julia = ["DataFramesMeta" "QuackIO"];
|
||||||
};
|
};
|
||||||
|
|
@ -187,6 +192,8 @@
|
||||||
air-formatter
|
air-formatter
|
||||||
yaml-language-server
|
yaml-language-server
|
||||||
updateR
|
updateR
|
||||||
|
nvimcom
|
||||||
|
rnvimserver
|
||||||
];
|
];
|
||||||
|
|
||||||
juliaPackages = let
|
juliaPackages = let
|
||||||
|
|
@ -199,7 +206,8 @@
|
||||||
zk
|
zk
|
||||||
];
|
];
|
||||||
|
|
||||||
shellPackages = [nvimPkg]
|
shellPackages =
|
||||||
|
[nvimPkg]
|
||||||
++ pkgs.lib.optionals cfg.cats.python pythonPackages
|
++ pkgs.lib.optionals cfg.cats.python pythonPackages
|
||||||
++ pkgs.lib.optionals cfg.cats.r rPackages
|
++ pkgs.lib.optionals cfg.cats.r rPackages
|
||||||
++ pkgs.lib.optionals cfg.cats.julia juliaPackages
|
++ pkgs.lib.optionals cfg.cats.julia juliaPackages
|
||||||
|
|
@ -210,7 +218,13 @@
|
||||||
packages = shellPackages;
|
packages = shellPackages;
|
||||||
nativeBuildInputs = with pkgs; [] ++ (pkgs.lib.optionals cfg.cats.optional [devenv]);
|
nativeBuildInputs = with pkgs; [] ++ (pkgs.lib.optionals cfg.cats.optional [devenv]);
|
||||||
inputsFrom = [];
|
inputsFrom = [];
|
||||||
shellHook = "";
|
shellHook = ''
|
||||||
|
echo 'I am a NixShell'
|
||||||
|
export R_HOME=$(R RHOME)
|
||||||
|
export R_LIBS_SITE=$(strings "$(command -v R)" | grep -oP '/nix/store/[^:]+/library' | sort -u | paste -sd: -)
|
||||||
|
export R_LIBS_USER="$PWD/.r-libs"
|
||||||
|
mkdir -p "$R_LIBS_USER"
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@
|
||||||
nix = lib.mkDefault true;
|
nix = lib.mkDefault true;
|
||||||
optional = lib.mkDefault false;
|
optional = lib.mkDefault false;
|
||||||
python = lib.mkDefault false;
|
python = lib.mkDefault false;
|
||||||
r = lib.mkDefault false;
|
r = lib.mkDefault true;
|
||||||
test = lib.mkDefault false;
|
test = lib.mkDefault false;
|
||||||
treesitterParsers = lib.mkDefault true;
|
treesitterParsers = lib.mkDefault true;
|
||||||
utils = lib.mkDefault true;
|
utils = lib.mkDefault true;
|
||||||
|
|
|
||||||
|
|
@ -11,12 +11,17 @@
|
||||||
UV_PYTHON_DOWNLOADS = "never";
|
UV_PYTHON_DOWNLOADS = "never";
|
||||||
UV_PYTHON = pkgs.python.interpreter;
|
UV_PYTHON = pkgs.python.interpreter;
|
||||||
})
|
})
|
||||||
|
(lib.mkIf (config.cats.r or false) {
|
||||||
|
RNVIM_COMPLDIR = "$PWD/.r-compl";
|
||||||
|
R_LIBS_USER = "${pkgs.nvimcom}/library:$PWD/.Rlibs";
|
||||||
|
TMPDIR = "$PWD/.r-tmp";
|
||||||
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
# Environment variables with defaults (can be overridden by user)
|
# Environment variables with defaults (can be overridden by user)
|
||||||
config.envDefault = lib.mkMerge [
|
config.envDefault = lib.mkMerge [
|
||||||
(lib.mkIf (config.cats.r or false) {
|
(lib.mkIf (config.cats.r or false) {
|
||||||
R_LIBS_USER = "./.Rlibs";
|
R_LIBS_USER = "${pkgs.nvimcom}/library:$PWD/.Rlibs";
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,13 @@
|
||||||
|
|
||||||
config.specs.r = {
|
config.specs.r = {
|
||||||
data = with pkgs.vimPlugins; [
|
data = with pkgs.vimPlugins; [
|
||||||
config.nvim-lib.neovimPlugins.r
|
(config.nvim-lib.neovimPlugins.r.overrideAttrs (old: {
|
||||||
|
postInstall = (old.postInstall or "") + ''
|
||||||
|
mkdir -p $out/rnvimserver
|
||||||
|
cp ${pkgs.rnvimserver}/bin/rnvimserver $out/rnvimserver/rnvimserver
|
||||||
|
chmod +x $out/rnvimserver/rnvimserver
|
||||||
|
'';
|
||||||
|
}))
|
||||||
quarto-nvim
|
quarto-nvim
|
||||||
{
|
{
|
||||||
data = otter-nvim;
|
data = otter-nvim;
|
||||||
|
|
|
||||||
|
|
@ -3,12 +3,14 @@ let
|
||||||
lib = nixpkgs.lib;
|
lib = nixpkgs.lib;
|
||||||
|
|
||||||
rOverlay = import ./r.nix {inherit inputs;};
|
rOverlay = import ./r.nix {inherit inputs;};
|
||||||
|
rNvimNixOverlay = inputs.r-nvim-nix.overlays.default;
|
||||||
franOverlay = inputs.fran.overlays.default;
|
franOverlay = inputs.fran.overlays.default;
|
||||||
pythonOverlay = import ./python.nix inputs;
|
pythonOverlay = import ./python.nix inputs;
|
||||||
pluginsOverlay = import ./plugins.nix inputs;
|
pluginsOverlay = import ./plugins.nix inputs;
|
||||||
|
|
||||||
dependencyOverlays = [
|
dependencyOverlays = [
|
||||||
rOverlay
|
rOverlay
|
||||||
|
rNvimNixOverlay
|
||||||
pythonOverlay
|
pythonOverlay
|
||||||
pluginsOverlay
|
pluginsOverlay
|
||||||
];
|
];
|
||||||
|
|
@ -17,6 +19,7 @@ in
|
||||||
{
|
{
|
||||||
inherit
|
inherit
|
||||||
rOverlay
|
rOverlay
|
||||||
|
rNvimNixOverlay
|
||||||
franOverlay
|
franOverlay
|
||||||
pythonOverlay
|
pythonOverlay
|
||||||
pluginsOverlay
|
pluginsOverlay
|
||||||
|
|
@ -30,6 +33,7 @@ in
|
||||||
overlays = {
|
overlays = {
|
||||||
inherit
|
inherit
|
||||||
rOverlay
|
rOverlay
|
||||||
|
rNvimNixOverlay
|
||||||
franOverlay
|
franOverlay
|
||||||
pythonOverlay
|
pythonOverlay
|
||||||
pluginsOverlay
|
pluginsOverlay
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,9 @@
|
||||||
overlays = [inputs.fran.overlays.default];
|
overlays = [inputs.fran.overlays.default];
|
||||||
}; # rixpkgs.legacyPackages.${prev.stdenv.hostPlatform.system};
|
}; # rixpkgs.legacyPackages.${prev.stdenv.hostPlatform.system};
|
||||||
|
|
||||||
|
# nvimcom and rnvimserver are provided by the r-nvim-nix flake overlay
|
||||||
|
# (inputs.r-nvim-nix.overlays.default)
|
||||||
|
|
||||||
# Standard R packages used by default in rWrapper and quarto
|
# Standard R packages used by default in rWrapper and quarto
|
||||||
reqPkgs = with rpkgs.rPackages; [
|
reqPkgs = with rpkgs.rPackages; [
|
||||||
# languageserver
|
# languageserver
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,12 @@ end)
|
||||||
-- r
|
-- r
|
||||||
now(function()
|
now(function()
|
||||||
if nix.get_cat("r", false) then
|
if nix.get_cat("r", false) then
|
||||||
|
local cwd = vim.fn.getcwd(-1)
|
||||||
|
vim.env.RNVIM_COMPLDIR = cwd .. "/.r-compl"
|
||||||
|
vim.env.R_LIBS_USER = (vim.env.R_LIBS_USER or ""):gsub("%$PWD", cwd)
|
||||||
|
vim.env.TMPDIR = cwd .. "/.r-tmp"
|
||||||
|
vim.fn.mkdir(vim.env.RNVIM_COMPLDIR, "p")
|
||||||
|
vim.fn.mkdir(vim.env.TMPDIR, "p")
|
||||||
vim.g.rout_follow_colorscheme = true
|
vim.g.rout_follow_colorscheme = true
|
||||||
require("r").setup({
|
require("r").setup({
|
||||||
-- Create a table with the options to be passed to setup()
|
-- Create a table with the options to be passed to setup()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue