haskell-config for nvim & ge_proton install script
This commit is contained in:
		| @@ -1,7 +1,6 @@ | ||||
| { | ||||
|   "extras": [ | ||||
|     "lazyvim.plugins.extras.coding.blink", | ||||
|     "lazyvim.plugins.extras.coding.luasnip", | ||||
|     "lazyvim.plugins.extras.coding.mini-comment", | ||||
|     "lazyvim.plugins.extras.coding.mini-snippets", | ||||
|     "lazyvim.plugins.extras.coding.mini-surround", | ||||
| @@ -16,6 +15,7 @@ | ||||
|     "lazyvim.plugins.extras.editor.snacks_picker", | ||||
|     "lazyvim.plugins.extras.editor.telescope", | ||||
|     "lazyvim.plugins.extras.formatting.prettier", | ||||
|     "lazyvim.plugins.extras.lang.haskell", | ||||
|     "lazyvim.plugins.extras.lang.json", | ||||
|     "lazyvim.plugins.extras.lang.markdown", | ||||
|     "lazyvim.plugins.extras.lang.nix", | ||||
|   | ||||
| @@ -6,6 +6,8 @@ return { | ||||
|     -- add any opts here | ||||
|     -- for example | ||||
|     provider = "ollama", | ||||
|     mode = "legacy", | ||||
|     disable_tools = true, | ||||
|     behaviour = { | ||||
|       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) | ||||
|         stream = true, | ||||
|         thinking = true, | ||||
|         disable_tools = true, | ||||
|         --system_prompt = "Enable deep thinking subroutine.", | ||||
|         -- reasoning_effort = "high", -- low|medium|high, only used for reasoning models | ||||
|       }, | ||||
| @@ -26,10 +29,11 @@ return { | ||||
|         model = "qwen3:32b", | ||||
|         max_completion_tokens = 40000, | ||||
|         reasoning_effort = "high", | ||||
|         disable_tools = true, | ||||
|       }, | ||||
|     }, | ||||
|     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 | ||||
|       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 | ||||
|   | ||||
							
								
								
									
										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 { | ||||
|   { "nvim-neotest/neotest-plenary", "nvim-neotest/neotest-jest" }, | ||||
|   "nvim-neotest/neotest-plenary", | ||||
|   "nvim-neotest/neotest-jest", | ||||
|   { | ||||
|     "nvim-neotest/neotest", | ||||
|     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