File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -222,7 +222,7 @@ functions.
222222<!-- `> bash ./supported-programs.sh` -->
223223
224224<!-- BEGIN mdsh -->
225- ` treefmt-nix ` currently supports 125 formatters:
225+ ` treefmt-nix ` currently supports 126 formatters:
226226
227227* [ actionlint] ( programs/actionlint.nix )
228228* [ aiken] ( programs/aiken.nix )
@@ -312,6 +312,7 @@ functions.
312312* [ php-cs-fixer] ( programs/php-cs-fixer.nix )
313313* [ pinact] ( programs/pinact.nix )
314314* [ prettier] ( programs/prettier.nix )
315+ * [ prolog-lsp-server] ( programs/prolog-lsp-server.nix )
315316* [ protolint] ( programs/protolint.nix )
316317* [ qmlformat] ( programs/qmlformat.nix )
317318* [ rstfmt] ( programs/rstfmt.nix )
Original file line number Diff line number Diff line change 1+ # Example generated by ../examples.sh
2+ [formatter .prolog-lsp-server ]
3+ command = " prolog-lsp-server"
4+ excludes = []
5+ includes = [" *.pl" , " *.pro" ]
6+ options = []
Original file line number Diff line number Diff line change 1+ {
2+ mkFormatterModule ,
3+ lib ,
4+ config ,
5+ pkgs ,
6+ ...
7+ } :
8+ let
9+ cfg = config . programs . prolog-lsp-server ;
10+
11+ lsp-server = pkgs . fetchzip {
12+ name = "lsp_server" ;
13+ url = "https://github.com/jamesnvc/lsp_server/archive/v3.14.0.zip" ;
14+ sha256 = "sha256-TKJxGcz170nit1kdUXQKZi5C5jq+MsW3w5FSqTfxqow=" ;
15+ } ;
16+
17+ swiplWithFormatter = cfg . package . override {
18+ extraPacks = map ( dep-path : "'file://${ dep-path } '" ) [
19+ lsp-server
20+ ] ;
21+ } ;
22+ in
23+ {
24+ meta . maintainers = [ lib . maintainers . baileylu ] ;
25+
26+ imports = [
27+ ( mkFormatterModule {
28+ name = "prolog-lsp-server" ;
29+ package = "swi-prolog" ;
30+ includes = [
31+ "*.pl"
32+ "*.pro"
33+ ] ;
34+ } )
35+ ] ;
36+
37+ config = lib . mkIf cfg . enable {
38+ settings . formatter . prolog-lsp-server = {
39+ # lsp_server doesn't support multiple file targets
40+ command = pkgs . writeShellApplication {
41+ name = "prolog-lsp-server" ;
42+ text = ''
43+ for file in "$@"; do
44+ ${ lib . getExe swiplWithFormatter } formatter "$file"
45+ done
46+ '' ;
47+ } ;
48+ } ;
49+ } ;
50+ }
You can’t perform that action at this time.
0 commit comments