#+title:    :lang fsharp
#+subtitle: ML stands for Microsoft's Language
#+created:  May 23, 2019
#+since:    21.12.0 (#1327)

* Description :unfold:
This module adds [[https://fsharp.org/][F#]] support to Doom Emacs.

*Includes:*
- Code completion
- eldoc support
- Syntax checking

** Maintainers
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]

** Module flags
- +lsp ::
  Enable LSP support for ~fsharp-mode~. Requires [[doom-module::tools lsp]] and a langserver
  (supports [[https://github.com/emacs-lsp/lsp-mode/blob/master/clients/lsp-fsharp.el][lsp-fsharp]].).

** Packages
- [[doom-package:fsharp-mode]]
- [[doom-package:lsp-fsharp]] if [[doom-package:+lsp]]

** Hacks
/No hacks documented for this module./

** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./

* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]

To get code completion/syntax checking when not using lsp, you will need to
install [[https://www.mono-project.com/][mono]].

** Mono
*** OSX
*Do NOT install mono via brew.* See this [[https://github.com/fsharp/FsAutoComplete/issues/331][issue]].

*** Arch Linux
#+begin_src sh
pacman -S mono
#+end_src

** LSP
The language server is automatically installed by [[https://github.com/emacs-lsp/lsp-mode/blob/master/clients/lsp-fsharp.el][lsp-fsharp]].

** Fantomas
Fantomas is used for formatting via [[doom-module::editor format]] and can be installed as a [[https://dotnet.microsoft.com/en-us/download][dotnet]] tool. 

#+begin_src shell
dotnet tool install -g fantomas-tool
#+end_src

* TODO Usage
#+begin_quote
 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote

* TODO Configuration
#+begin_quote
 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote

* Troubleshooting
/There are no known problems with this module./ [[doom-report:][Report one?]]

* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]

* TODO Appendix
#+begin_quote
 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote
