Compare commits
3 Commits
ca2ecf3300
...
5d2f71e934
Author | SHA1 | Date |
---|---|---|
pegasust | 5d2f71e934 | |
pegasust | 37363d4581 | |
pegasust | 660a2f24f3 |
|
@ -540,7 +540,7 @@ local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
||||||
local servers = {
|
local servers = {
|
||||||
'clangd', 'rust_analyzer', 'pyright', 'tsserver', 'sumneko_lua', 'cmake', 'tailwindcss', 'prismals',
|
'clangd', 'rust_analyzer', 'pyright', 'tsserver', 'sumneko_lua', 'cmake', 'tailwindcss', 'prismals',
|
||||||
'rnix', 'eslint', 'terraformls', 'tflint', 'svelte', 'astro', 'clojure_lsp', "bashls", 'yamlls', "pylsp",
|
'rnix', 'eslint', 'terraformls', 'tflint', 'svelte', 'astro', 'clojure_lsp', "bashls", 'yamlls', "pylsp",
|
||||||
"jsonls",
|
"jsonls", "denols"
|
||||||
}
|
}
|
||||||
require("mason").setup({
|
require("mason").setup({
|
||||||
ui = {
|
ui = {
|
||||||
|
@ -550,7 +550,12 @@ require("mason").setup({
|
||||||
package_uninstalled = "✗"
|
package_uninstalled = "✗"
|
||||||
},
|
},
|
||||||
check_outdated_packages_on_open = true,
|
check_outdated_packages_on_open = true,
|
||||||
}
|
},
|
||||||
|
-- The default settings is "prepend" https://github.com/williamboman/mason.nvim#default-configuration
|
||||||
|
-- Which means Mason's installed path is prioritized against our local install
|
||||||
|
-- see: https://git.pegasust.com/pegasust/aoc/commit/b45dc32c74d84c9f787ebce7a174c9aa1d411fc2
|
||||||
|
-- This introduces some pitfalls, so we'll take the approach of trusting user's local installation
|
||||||
|
PATH = "append";
|
||||||
})
|
})
|
||||||
require('mason-lspconfig').setup({
|
require('mason-lspconfig').setup({
|
||||||
ensure_installed = servers,
|
ensure_installed = servers,
|
||||||
|
@ -608,15 +613,25 @@ require('mason-lspconfig').setup_handlers({
|
||||||
require('lspconfig').tsserver.setup {
|
require('lspconfig').tsserver.setup {
|
||||||
on_attach = on_attach,
|
on_attach = on_attach,
|
||||||
capabilities = capabilities,
|
capabilities = capabilities,
|
||||||
|
-- TODO: Have to figure out an alternative config for monorepo to prevent
|
||||||
|
-- Deno from injecting TS projects.
|
||||||
-- Monorepo support: spawn one instance of lsp within the git
|
-- Monorepo support: spawn one instance of lsp within the git
|
||||||
-- repos.
|
-- repos.
|
||||||
root_dir = require('lspconfig.util').root_pattern('.git'),
|
-- root_dir = require('lspconfig.util').root_pattern('.git'),
|
||||||
|
root_dir = require('lspconfig.util').root_pattern('package.json'),
|
||||||
settings = {
|
settings = {
|
||||||
javascript = inlay_hint_tsjs,
|
javascript = inlay_hint_tsjs,
|
||||||
typescript = inlay_hint_tsjs,
|
typescript = inlay_hint_tsjs,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
end,
|
end,
|
||||||
|
["denols"] = function()
|
||||||
|
require('lspconfig').denols.setup {
|
||||||
|
on_attach = on_attach,
|
||||||
|
capabilities = capabilities,
|
||||||
|
root_dir = require('lspconfig.util').root_pattern("deno.json", "deno.jsonc"),
|
||||||
|
}
|
||||||
|
end,
|
||||||
-- ["rust_analyzer"] = function()
|
-- ["rust_analyzer"] = function()
|
||||||
-- require('lspconfig').rust_analyzer.setup {
|
-- require('lspconfig').rust_analyzer.setup {
|
||||||
-- on_attach = on_attach,
|
-- on_attach = on_attach,
|
||||||
|
|
|
@ -4,7 +4,8 @@
|
||||||
, myHome
|
, myHome
|
||||||
, ...
|
, ...
|
||||||
}:
|
}:
|
||||||
let nvim_pkgs = [
|
let
|
||||||
|
nvim_pkgs = [
|
||||||
# Yes, I desperately want neovim to work out-of-the-box without flake.nix for now
|
# Yes, I desperately want neovim to work out-of-the-box without flake.nix for now
|
||||||
# I want at least python LSP to work everywhere because it's basically
|
# I want at least python LSP to work everywhere because it's basically
|
||||||
# an alternative to bash script when I move to OpenColo
|
# an alternative to bash script when I move to OpenColo
|
||||||
|
@ -25,7 +26,10 @@ let nvim_pkgs = [
|
||||||
# pypkgs.pynvim # nvim provider
|
# pypkgs.pynvim # nvim provider
|
||||||
# # pypkgs.ujson # pylsp seems to rely on this. satisfy it lol
|
# # pypkgs.ujson # pylsp seems to rely on this. satisfy it lol
|
||||||
# ]))
|
# ]))
|
||||||
]; in
|
];
|
||||||
|
proj_root = builtins.toString ./../..;
|
||||||
|
|
||||||
|
in
|
||||||
{
|
{
|
||||||
home = {
|
home = {
|
||||||
username = myHome.username;
|
username = myHome.username;
|
||||||
|
@ -59,8 +63,8 @@ let nvim_pkgs = [
|
||||||
] ++ (myHome.packages or [ ]) ++ nvim_pkgs);
|
] ++ (myHome.packages or [ ]) ++ nvim_pkgs);
|
||||||
|
|
||||||
## Configs ##
|
## Configs ##
|
||||||
xdg.configFile."nvim/init.lua".text = builtins.readFile ../neovim/init.lua;
|
xdg.configFile."nvim/init.lua".text = builtins.readFile "${proj_root}//neovim/init.lua";
|
||||||
xdg.configFile."starship.toml".text = builtins.readFile ../starship/starship.toml;
|
xdg.configFile."starship.toml".text = builtins.readFile "${proj_root}//starship/starship.toml";
|
||||||
|
|
||||||
## Programs ##
|
## Programs ##
|
||||||
programs.jq = {
|
programs.jq = {
|
||||||
|
@ -68,7 +72,7 @@ let nvim_pkgs = [
|
||||||
};
|
};
|
||||||
programs.alacritty = myHome.programs.alacritty or {
|
programs.alacritty = myHome.programs.alacritty or {
|
||||||
enable = true;
|
enable = true;
|
||||||
# settings = myLib.fromYaml (builtins.readFile ../alacritty/alacritty.yml);
|
# settings = myLib.fromYaml (builtins.readFile "${proj_root}/alacritty/alacritty.yml");
|
||||||
};
|
};
|
||||||
# nix: Propagates the environment with packages and vars when enter (children of)
|
# nix: Propagates the environment with packages and vars when enter (children of)
|
||||||
# a directory with shell.nix-compatible and .envrc
|
# a directory with shell.nix-compatible and .envrc
|
||||||
|
@ -84,7 +88,7 @@ let nvim_pkgs = [
|
||||||
};
|
};
|
||||||
programs.tmux = {
|
programs.tmux = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraConfig = builtins.readFile ../tmux/tmux.conf;
|
extraConfig = builtins.readFile "${proj_root}/tmux/tmux.conf";
|
||||||
};
|
};
|
||||||
programs.exa = {
|
programs.exa = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -110,7 +114,7 @@ let nvim_pkgs = [
|
||||||
# I use vim-plug, so I probably don't require packaging
|
# I use vim-plug, so I probably don't require packaging
|
||||||
# extraConfig actually writes to init-home-manager.vim (not lua)
|
# extraConfig actually writes to init-home-manager.vim (not lua)
|
||||||
# https://github.com/nix-community/home-manager/pull/3287
|
# https://github.com/nix-community/home-manager/pull/3287
|
||||||
# extraConfig = builtins.readFile ../neovim/init.lua;
|
# extraConfig = builtins.readFile "${proj_root}/neovim/init.lua";
|
||||||
};
|
};
|
||||||
programs.bash = {
|
programs.bash = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -172,6 +176,6 @@ let nvim_pkgs = [
|
||||||
programs.ssh = {
|
programs.ssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
forwardAgent = true;
|
forwardAgent = true;
|
||||||
extraConfig = builtins.readFile ../ssh/config;
|
extraConfig = builtins.readFile "${proj_root}/ssh/config";
|
||||||
};
|
};
|
||||||
}
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
# This module aims to be merge (not inject/override) with top-level pkgs to provide
|
||||||
|
# personalized/custom packages
|
||||||
|
{ pkgs, lib, ... }@pkgs_input: {
|
||||||
|
dot-hwtr = import "./dot-hwtr" pkgs_input;
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
{ pkgs, lib, ... }@pkgs_input: pkgs.stdenv.mkDerivation {
|
||||||
|
name = "dot-hwtr";
|
||||||
|
native
|
||||||
|
}
|
|
@ -12,7 +12,7 @@ fi
|
||||||
SCRIPT_DIR=$(realpath $(dirname $0))
|
SCRIPT_DIR=$(realpath $(dirname $0))
|
||||||
echo "SCRIPT_DIR: ${SCRIPT_DIR}"
|
echo "SCRIPT_DIR: ${SCRIPT_DIR}"
|
||||||
|
|
||||||
SYSNIX_DIR="${SCRIPT_DIR}/../system-nix"
|
SYSNIX_DIR="${SCRIPT_DIR}/../nix-conf/system"
|
||||||
|
|
||||||
# Copy hardware-configuration of existing machine onto our version control
|
# Copy hardware-configuration of existing machine onto our version control
|
||||||
SYSNIX_PROF="${SYSNIX_DIR}/profiles/${HOSTNAME}"
|
SYSNIX_PROF="${SYSNIX_DIR}/profiles/${HOSTNAME}"
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
# NOTE: Untested on case of no home-manager
|
||||||
|
set -xv
|
||||||
|
|
||||||
|
# Where this script located
|
||||||
|
SCRIPT_DIR=$(realpath $(dirname $0))
|
||||||
|
echo "SCRIPT_DIR: ${SCRIPT_DIR}"
|
||||||
|
|
||||||
|
HOME_MANAGER_DIR="${SCRIPT_DIR}/../nix-conf/home-manager"
|
||||||
|
|
||||||
|
# test if we have home-manager, if not, attempt to use nix to put home-manager to
|
||||||
|
# our environment
|
||||||
|
if [ $(home-manager &>/dev/null) ]; then
|
||||||
|
nix-shell -p home-manager --run "home-manager switch --flake $HOME_MANAGER_DIR"
|
||||||
|
else
|
||||||
|
home-manager switch --flake "$HOME_MANAGER_DIR"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue