mirror of
https://github.com/LazyVim/LazyVim.git
synced 2025-12-25 12:14:19 +01:00
feat(lang/fsharp): add F# support to omnisharp extra (#6538)
## Description Extend the existing C#/VB setup to support F# development with formatting, LSP, and debugging integration. - Extend recommended filetypes and roots to include F# - Ensure Treesitter installs the `fsharp` parser - Add Fantomas formatter in none-ls and Conform - Ensure Mason installs fsautocomplete and fantomas - Extend DAP configurations to include `fsharp` ⚠️ For debugging/neotest to work, this PR should be merged together with [#6540](https://github.com/LazyVim/LazyVim/pull/6540), which switches Omnisharp extras from `neotest-dotnet` to `neotest-vstest`. ## Related Issue(s) N/A ## Screenshots ### Without PR Sample code: <img width="1485" height="934" alt="2025-09-27-224704_hyprshot" src="https://github.com/user-attachments/assets/40993ae2-c7eb-458a-bca9-6e77a1fad323" /> ### With PR `:ConformInfo` <img width="1280" height="573" alt="image" src="https://github.com/user-attachments/assets/b417fce7-8eb5-4ccc-8bd4-c554060bf9a0" /> `:NullLsInfo` <img width="732" height="544" alt="image" src="https://github.com/user-attachments/assets/5275e16b-353f-4776-b130-09ec27fde90b" /> Sample code before formatting: <img width="1953" height="1228" alt="2025-09-27-224729_hyprshot" src="https://github.com/user-attachments/assets/870b17c7-2473-4151-9ccc-23b70d9fbc42" /> Sample code after formatting (using Fantomas formatter): <img width="1930" height="1216" alt="2025-09-27-224752_hyprshot" src="https://github.com/user-attachments/assets/3b589c2e-b7b2-4fbf-bef7-0aabda586536" /> DAP/Neotest debugging the sample code: <img width="2548" height="1461" alt="image" src="https://github.com/user-attachments/assets/b70a9498-041e-48c8-8e7c-78a828d0e17d" /> ## Attachments [Sample Project ZIP Archive](https://github.com/user-attachments/files/22576868/FsSample.zip) ``` sudo pacman -S --needed curl unzip dotnet-sdk # or whatever package manger is on system curl -O -L "https://github.com/user-attachments/files/22576868/FsSample.zip" unzip FsSample.zip cd FsSample dotnet build # restoring/building fixes LSP errors ``` ## Checklist - [X] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. Co-authored-by: Christoph Schmidpeter <christoph.schmidpeter@gmail.com>
This commit is contained in:
committed by
GitHub
parent
38df28f28c
commit
80a980ab00
@@ -1,15 +1,15 @@
|
||||
return {
|
||||
recommended = function()
|
||||
return LazyVim.extras.wants({
|
||||
ft = { "cs", "vb" },
|
||||
root = { "*.sln", "*.csproj", "omnisharp.json", "function.json" },
|
||||
ft = { "cs", "vb", "fsharp" },
|
||||
root = { "*.sln", "*.csproj", "*.fsproj", "omnisharp.json", "function.json", "paket.dependencies", "paket.lock" },
|
||||
})
|
||||
end,
|
||||
|
||||
{ "Hoffs/omnisharp-extended-lsp.nvim", lazy = true },
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
opts = { ensure_installed = { "c_sharp" } },
|
||||
opts = { ensure_installed = { "c_sharp", "fsharp" } },
|
||||
},
|
||||
{
|
||||
"nvimtools/none-ls.nvim",
|
||||
@@ -18,6 +18,7 @@ return {
|
||||
local nls = require("null-ls")
|
||||
opts.sources = opts.sources or {}
|
||||
table.insert(opts.sources, nls.builtins.formatting.csharpier)
|
||||
table.insert(opts.sources, nls.builtins.formatting.fantomas)
|
||||
end,
|
||||
},
|
||||
{
|
||||
@@ -26,12 +27,13 @@ return {
|
||||
opts = {
|
||||
formatters_by_ft = {
|
||||
cs = { "csharpier" },
|
||||
fsharp = { "fantomas" },
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"mason-org/mason.nvim",
|
||||
opts = { ensure_installed = { "csharpier", "netcoredbg" } },
|
||||
opts = { ensure_installed = { "csharpier", "netcoredbg", "fsautocomplete", "fantomas" } },
|
||||
},
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
|
||||
Reference in New Issue
Block a user