1
0
mirror of https://github.com/tiyn/dotfiles.git synced 2026-07-02 12:51:34 +02:00

Compare commits

..

4 Commits

5 changed files with 239 additions and 165 deletions

View File

@@ -27,6 +27,8 @@ Genervtheit
Gestresstheit Gestresstheit
Gym Gym
Handwerksunternehmen Handwerksunternehmen
Higher-Up
Higher-Ups
Homeserver Homeserver
Immigrationsgeschichte Immigrationsgeschichte
Impro Impro

View File

@@ -51,7 +51,7 @@ Darth
DeepSeek DeepSeek
Dekarldent Dekarldent
Delivery Delivery
Destiny 2 Destiny
Distrobox Distrobox
Doom Doom
Doyma Doyma
@@ -111,6 +111,7 @@ JT
Jacobin Jacobin
Jeanine Jeanine
Jojen Jojen
Jungjohann
Karamasov Karamasov
Keep Keep
Keycap Keycap

View File

@@ -22,13 +22,24 @@ return {
vim.schedule(function() vim.schedule(function()
local kernels = vim.fn.MoltenAvailableKernels() local kernels = vim.fn.MoltenAvailableKernels()
local try_kernel_name = function() local try_kernel_name = function()
local metadata = vim.json.decode(io.open(e.file, "r"):read("a"))["metadata"] local f = io.open(e.file, "r")
return metadata.kernelspec.name if not f then
return nil
end
local content = f:read("*a")
f:close()
local ok, decoded = pcall(vim.json.decode, content)
if not ok then
return nil
end
return decoded.metadata
and decoded.metadata.kernelspec
and decoded.metadata.kernelspec.name
end end
local ok, kernel_name = pcall(try_kernel_name) local ok, kernel_name = pcall(try_kernel_name)
if not ok or not vim.tbl_contains(kernels, kernel_name) then if not ok or not vim.tbl_contains(kernels, kernel_name) then
kernel_name = nil kernel_name = nil
local venv = os.getenv("VIRTUAL_ENV") or os.getenv("CONDA_PREFIX") local venv = os.getenv("VIRTUAL_ENV") or os.getenv("CONDA_PREFIX") or ".venv"
if venv ~= nil then if venv ~= nil then
kernel_name = string.match(venv, "/.+/(.+)") kernel_name = string.match(venv, "/.+/(.+)")
end end

View File

@@ -2,7 +2,7 @@
# HELPER FUNCTIONS # # HELPER FUNCTIONS #
#################### ####################
precmd_vcs_info() { vcs_info } precmd_vcs_info() { vcs_info; }
precmd_functions+=(precmd_vcs_info) precmd_functions+=(precmd_vcs_info)
@@ -59,7 +59,7 @@ function +vi-git-st() {
local ahead behind remote local ahead behind remote
local -a gitstatus local -a gitstatus
remote=${$(git rev-parse --verify ${hook_com[branch]}@{upstream} \ remote=${$(git rev-parse --verify ${hook_com[branch]}@{upstream} \
--symbolic-full-name 2>/dev/null)/refs\/remotes\/} --symbolic-full-name 2>/dev/null)/refs\/remotes\//}
if [[ -n ${remote} ]]; then if [[ -n ${remote} ]]; then
# for git prior to 1.7 # for git prior to 1.7
# ahead=$(git rev-list origin/${hook_com[branch]}..HEAD | wc -l) # ahead=$(git rev-list origin/${hook_com[branch]}..HEAD | wc -l)
@@ -113,6 +113,49 @@ uv() {
fi fi
} }
find_python_root() {
local target="$1"
local dir
if [[ -n "$target" && -e "$target" ]]; then
dir="$(cd "$(dirname "$target")" && pwd)"
else
dir="$PWD"
fi
while [[ "$dir" != "/" ]]; do
if [[ -f "$dir/.python-version" ]] || [[ -f "$dir/pyproject.toml" ]]; then
echo "$dir"
return 0
fi
dir="$(dirname "$dir")"
done
return 1
}
uvshim() {
local cmd="$1"
shift
local uv_root=""
local first_arg="$1"
uv_root="$(find_python_root "$first_arg")"
if [[ -n "$uv_root" ]]; then
uv run --project "$uv_root" "$cmd" "$@"
else
command -- "$cmd" "$@"
fi
}
python() { uvshim python "$@"; }
python3() { uvshim python3 "$@"; }
pip() { uvshim pip "$@"; }
pytest() { uvshim pytest "$@"; }
_find_venv_upwards() { _find_venv_upwards() {
local dir="$PWD" local dir="$PWD"

View File

@@ -14,7 +14,18 @@ vipercmd="carbon" #"silicon"
cd "$dir" || exit cd "$dir" || exit
textype() { \ has_python_version() {
dir="$PWD"
while [ "$dir" != "/" ]; do
if [ -f "$dir/.python-version" ] || [ -f "$dir/pyproject.toml" ]; then
return 0
fi
dir=$(dirname "$dir")
done
return 1
}
textype() {
command="pdflatex --shell-escape" command="pdflatex --shell-escape"
(sed 5q "$file" | grep -i -q 'xelatex') && command="xelatex" (sed 5q "$file" | grep -i -q 'xelatex') && command="xelatex"
$command --output-directory="$dir" "$base" && $command --output-directory="$dir" "$base" &&
@@ -33,7 +44,13 @@ case "$file" in
*\.md) pandoc "$file" --pdf-engine=xelatex -o "$base".pdf ;; *\.md) pandoc "$file" --pdf-engine=xelatex -o "$base".pdf ;;
*\.mom) refer -PS -e "$file" | groff -mom -kept -T pdf >"$base".pdf ;; *\.mom) refer -PS -e "$file" | groff -mom -kept -T pdf >"$base".pdf ;;
*\.ms) refer -PS -e "$file" | groff -me -ms -kept -T pdf >"$base".pdf ;; *\.ms) refer -PS -e "$file" | groff -me -ms -kept -T pdf >"$base".pdf ;;
*\.py) python3 "$file" ;; *\.py)
if has_python_version; then
uv run python "$file"
else
python3 "$file"
fi
;;
*\.rmd) echo "require(rmarkdown); render('$file')" | R -q --vanilla ;; *\.rmd) echo "require(rmarkdown); render('$file')" | R -q --vanilla ;;
*\.sent) setsid sent "$file" 2>/dev/null & ;; *\.sent) setsid sent "$file" 2>/dev/null & ;;
*config.h) sudo make install ;; *config.h) sudo make install ;;
@@ -43,9 +60,9 @@ case "$file" in
*\.m) octave -qW "$file" ;; *\.m) octave -qW "$file" ;;
*\.nim) nim c -r -d:noColors "$file" ;; *\.nim) nim c -r -d:noColors "$file" ;;
*\.r | *\.R) Rscript "$file" ;; *\.r | *\.R) Rscript "$file" ;;
*\.rs) (cd "$dir" && cargo locate-project >/dev/null 2>&1) \ *\.rs) (cd "$dir" && cargo locate-project >/dev/null 2>&1) &&
&& (cd "$(dirname "$(cd "$dir" && cargo locate-project --message-format plain)")" && cargo run) \ (cd "$(dirname "$(cd "$dir" && cargo locate-project --message-format plain)")" && cargo run) ||
|| (rustc "$file" && "./$(basename "${file%.rs}")") ;; (rustc "$file" && "./$(basename "${file%.rs}")") ;;
*\.sh) dash "$file" ;; *\.sh) dash "$file" ;;
*\.smt2) z3 "$file" ;; *\.smt2) z3 "$file" ;;
*\.tex) textype "$file" ;; *\.tex) textype "$file" ;;