haskell-config for nvim & ge_proton install script
This commit is contained in:
		| @@ -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", | ||||||
|   | |||||||
| @@ -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 | ||||||
|   | |||||||
							
								
								
									
										18
									
								
								nvim-config/lua/plugins/haskell-snippets.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								nvim-config/lua/plugins/haskell-snippets.lua
									
									
									
									
									
										Normal 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, | ||||||
|  | } | ||||||
							
								
								
									
										25
									
								
								nvim-config/lua/plugins/haskell.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								nvim-config/lua/plugins/haskell.lua
									
									
									
									
									
										Normal 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, | ||||||
|  |   }, | ||||||
|  | } | ||||||
							
								
								
									
										21
									
								
								nvim-config/lua/plugins/snippets.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								nvim-config/lua/plugins/snippets.lua
									
									
									
									
									
										Normal 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, | ||||||
|  | } | ||||||
| @@ -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 = { | ||||||
|   | |||||||
							
								
								
									
										36
									
								
								scripts/install_latest_ge_proton.bash
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										36
									
								
								scripts/install_latest_ge_proton.bash
									
									
									
									
									
										Executable 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 :)" | ||||||
		Reference in New Issue
	
	Block a user