haskell-config for nvim & ge_proton install script

This commit is contained in:
Nicole Dresselhaus
2025-09-12 10:57:44 +02:00
parent 41e1067647
commit 014ec633b7
7 changed files with 108 additions and 3 deletions

View File

@ -1,7 +1,6 @@
{ {
"extras": [ "extras": [
"lazyvim.plugins.extras.coding.blink", "lazyvim.plugins.extras.coding.blink",
"lazyvim.plugins.extras.coding.luasnip",
"lazyvim.plugins.extras.coding.mini-comment", "lazyvim.plugins.extras.coding.mini-comment",
"lazyvim.plugins.extras.coding.mini-snippets", "lazyvim.plugins.extras.coding.mini-snippets",
"lazyvim.plugins.extras.coding.mini-surround", "lazyvim.plugins.extras.coding.mini-surround",
@ -16,6 +15,7 @@
"lazyvim.plugins.extras.editor.snacks_picker", "lazyvim.plugins.extras.editor.snacks_picker",
"lazyvim.plugins.extras.editor.telescope", "lazyvim.plugins.extras.editor.telescope",
"lazyvim.plugins.extras.formatting.prettier", "lazyvim.plugins.extras.formatting.prettier",
"lazyvim.plugins.extras.lang.haskell",
"lazyvim.plugins.extras.lang.json", "lazyvim.plugins.extras.lang.json",
"lazyvim.plugins.extras.lang.markdown", "lazyvim.plugins.extras.lang.markdown",
"lazyvim.plugins.extras.lang.nix", "lazyvim.plugins.extras.lang.nix",

View File

@ -6,6 +6,8 @@ return {
-- add any opts here -- add any opts here
-- for example -- for example
provider = "ollama", provider = "ollama",
mode = "legacy",
disable_tools = true,
behaviour = { behaviour = {
enable_cursor_planning_mode = true, -- enable cursor planning mode! enable_cursor_planning_mode = true, -- enable cursor planning mode!
}, },
@ -18,6 +20,7 @@ return {
max_completion_tokens = 40000, -- Increase this to include reasoning tokens (for reasoning models) max_completion_tokens = 40000, -- Increase this to include reasoning tokens (for reasoning models)
stream = true, stream = true,
thinking = true, thinking = true,
disable_tools = true,
--system_prompt = "Enable deep thinking subroutine.", --system_prompt = "Enable deep thinking subroutine.",
-- reasoning_effort = "high", -- low|medium|high, only used for reasoning models -- reasoning_effort = "high", -- low|medium|high, only used for reasoning models
}, },
@ -26,10 +29,11 @@ return {
model = "qwen3:32b", model = "qwen3:32b",
max_completion_tokens = 40000, max_completion_tokens = 40000,
reasoning_effort = "high", reasoning_effort = "high",
disable_tools = true,
}, },
}, },
rag_service = { rag_service = {
enabled = true, -- Enables the RAG service enabled = false, -- Enables the RAG service
host_mount = os.getenv("HOME"), -- Host mount path for the rag service host_mount = os.getenv("HOME"), -- Host mount path for the rag service
provider = "ollama", -- The provider to use for RAG service (e.g. openai or ollama) provider = "ollama", -- The provider to use for RAG service (e.g. openai or ollama)
llm_model = "cogito", -- The LLM model to use for RAG service llm_model = "cogito", -- The LLM model to use for RAG service

View File

@ -0,0 +1,18 @@
return {
"mrcjkb/haskell-snippets.nvim",
ft = { "haskell", "lhaskell", "cabal" },
dependencies = { "L3MON4D3/LuaSnip" },
-- falls Lazy mal falsch cached: lade LuaSnip aktiv vorher
init = function()
if not package.loaded["luasnip"] then
local ok, lazy = pcall(require, "lazy")
if ok then
lazy.load({ plugins = { "LuaSnip" } })
end
end
end,
-- lade nur, wenn require("luasnip") wirklich klappt
cond = function()
return package.loaded["luasnip"] or pcall(require, "luasnip")
end,
}

View File

@ -0,0 +1,25 @@
return {
"mrcjkb/haskell-tools.nvim",
ft = { "haskell", "lhaskell", "cabal" },
opts = {
hls = {
settings = {
haskell = {
formattingProvider = "fourmolu",
-- wir nutzen das interne Plugin, kein externes Binary nötig:
plugin = { fourmolu = { config = { external = false } } },
-- .cabal-Formatting komplett deaktivieren (sonst verlangt HLS cabal-fmt)
cabalFormattingProvider = "none",
},
},
},
-- optional: Safety im on_attach
on_attach = function(client, bufnr)
if vim.bo[bufnr].filetype == "cabal" then
client.server_capabilities.documentFormattingProvider = false
end
end,
},
}

View File

@ -0,0 +1,21 @@
return {
"L3MON4D3/LuaSnip",
version = "v2.*",
lazy = false, -- früh laden
priority = 1000, -- vor anderem Zeug
dependencies = { "rafamadriz/friendly-snippets" },
build = (function()
return (vim.fn.executable("make") == 1) and "make install_jsregexp" or nil
end)(),
config = function()
require("luasnip").config.set_config({
history = true,
updateevents = "TextChanged,TextChangedI",
enable_autosnippets = true,
})
require("luasnip.loaders.from_vscode").lazy_load()
require("luasnip.loaders.from_lua").lazy_load({
paths = vim.fn.stdpath("config") .. "/lua/snippets",
})
end,
}

View File

@ -1,5 +1,6 @@
return { return {
{ "nvim-neotest/neotest-plenary", "nvim-neotest/neotest-jest" }, "nvim-neotest/neotest-plenary",
"nvim-neotest/neotest-jest",
{ {
"nvim-neotest/neotest", "nvim-neotest/neotest",
opts = { opts = {

View File

@ -0,0 +1,36 @@
#!/bin/bash
set -euo pipefail
# make temp working directory
echo "Creating temporary working directory..."
rm -rf /tmp/proton-ge-custom
mkdir /tmp/proton-ge-custom
cd /tmp/proton-ge-custom
# download tarball
echo "Fetching tarball URL..."
tarball_url=$(curl -s https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases/latest | grep browser_download_url | cut -d\" -f4 | grep .tar.gz)
tarball_name=$(basename "$tarball_url")
echo "Downloading tarball: $tarball_name..."
curl -# -L "$tarball_url" -o "$tarball_name" --no-progress-meter
# download checksum
echo "Fetching checksum URL..."
checksum_url=$(curl -s https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases/latest | grep browser_download_url | cut -d\" -f4 | grep .sha512sum)
checksum_name=$(basename "$checksum_url")
echo "Downloading checksum: $checksum_name..."
curl -# -L "$checksum_url" -o "$checksum_name" --no-progress-meter
# check tarball with checksum
echo "Verifying tarball $tarball_name with checksum $checksum_name..."
sha512sum -c "$checksum_name"
# if result is ok, continue
# make steam directory if it does not exist
echo "Creating Steam directory if it does not exist..."
mkdir -p ~/.steam/steam/compatibilitytools.d
# extract proton tarball to steam directory
echo "Extracting $tarball_name to Steam directory..."
tar -xf "$tarball_name" -C ~/.steam/steam/compatibilitytools.d/
echo "All done :)"