Skip to content

Commit ba49fa9

Browse files
authored
Merge pull request #186 from asadoll/master
Updating configuration to support HLS 2.9.0.1 schema
2 parents 2586c16 + 6a58e46 commit ba49fa9

File tree

1 file changed

+205
-6
lines changed

1 file changed

+205
-6
lines changed

lsp-haskell.el

+205-6
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
;;; lsp-haskell.el --- Haskell support for lsp-mode
1+
;;; lsp-haskell.el --- Haskell support for lsp-mode -*- lexical-binding: t; -*-
22

33
;; Version: 1.1
44
;; Package-Requires: ((emacs "27.1") (lsp-mode "3.0") (haskell-mode "16.1"))
@@ -433,11 +433,210 @@ but will take exponentially more time."
433433
:package-version '(lsp-mode . "8.0.1")
434434
:lsp-path "haskell.plugin.rename.globalOn")
435435

436-
(lsp-defcustom lsp-haskell-plugin-semantic-tokens-global-on t
437-
"Enables semantic-tokens plugin"
438-
:type 'boolean
439-
:group 'lsp-haskell-plugins
440-
:package-version '(lsp-mode . "8.0.1")
436+
;; Updated for haskell-language-server 2.9.0.1
437+
438+
(lsp-defcustom lsp-haskell-plugin-cabal-fmt-config-path "cabal-fmt"
439+
"Set path to 'cabal-fmt' executable"
440+
:type 'string
441+
:group 'lsp-haskell-plugins
442+
:package-version '(lsp-mode . "9.0.0")
443+
:lsp-path "haskell.plugin.cabal-fmt.config.path")
444+
445+
(lsp-defcustom lsp-haskell-plugin-cabal-gild-config-path "cabal-gild"
446+
"Set path to 'cabal-gild' executable"
447+
:type 'string
448+
:group 'lsp-haskell-plugins
449+
:package-version '(lsp-mode . "9.0.0")
450+
:lsp-path "haskell.plugin.cabal-gild.config.path")
451+
452+
(lsp-defcustom lsp-haskell-plugin-cabal-diagnostics-on t
453+
"Enables cabal diagnostics"
454+
:type 'boolean
455+
:group 'lsp-haskell-plugins
456+
:package-version '(lsp-mode . "9.0.0")
457+
:lsp-path "haskell.plugin.cabal.diagnosticsOn")
458+
459+
(lsp-defcustom lsp-haskell-plugin-fourmolu-config-path "fourmolu"
460+
"Set path to executable (for \"external\" mode)."
461+
:type 'string
462+
:group 'lsp-haskell-plugins
463+
:package-version '(lsp-mode . "9.0.0")
464+
:lsp-path "haskell.plugin.fourmolu.config.path")
465+
466+
(lsp-defcustom lsp-haskell-plugin-semantic-tokens-config-class-method-token
467+
"method"
468+
"LSP semantic token type to use for typeclass methods"
469+
:type '(choice (const "namespace") (const "type") (const "class") (const "enum")
470+
(const "interface") (const "struct") (const "typeParameter")
471+
(const "parameter") (const "variable") (const "property") (const "enumMember")
472+
(const "event") (const "function") (const "method") (const "macro")
473+
(const "keyword") (const "modifier") (const "comment") (const "string")
474+
(const "number") (const "regexp") (const "operator") (const "decorator"))
475+
:group 'lsp-haskell-plugins
476+
:package-version '(lsp-mode . "9.0.0")
477+
:lsp-path "haskell.plugin.semanticTokens.config.classMethodToken")
478+
479+
(lsp-defcustom lsp-haskell-plugin-semantic-tokens-config-class-token
480+
"class"
481+
"LSP semantic token type to use for typeclasses"
482+
:type '(choice (const "namespace") (const "type") (const "class") (const "enum")
483+
(const "interface") (const "struct") (const "typeParameter")
484+
(const "parameter") (const "variable") (const "property") (const "enumMember")
485+
(const "event") (const "function") (const "method") (const "macro")
486+
(const "keyword") (const "modifier") (const "comment") (const "string")
487+
(const "number") (const "regexp") (const "operator") (const "decorator"))
488+
:group 'lsp-haskell-plugins
489+
:package-version '(lsp-mode . "9.0.0")
490+
:lsp-path "haskell.plugin.semanticTokens.config.classToken")
491+
492+
(lsp-defcustom lsp-haskell-plugin-semantic-tokens-config-data-constructor-token
493+
"enumMember"
494+
"LSP semantic token type to use for data constructors"
495+
:type '(choice (const "namespace") (const "type") (const "class") (const "enum")
496+
(const "interface") (const "struct") (const "typeParameter")
497+
(const "parameter") (const "variable") (const "property") (const "enumMember")
498+
(const "event") (const "function") (const "method") (const "macro")
499+
(const "keyword") (const "modifier") (const "comment") (const "string")
500+
(const "number") (const "regexp") (const "operator") (const "decorator"))
501+
:group 'lsp-haskell-plugins
502+
:package-version '(lsp-mode . "9.0.0")
503+
:lsp-path "haskell.plugin.semanticTokens.config.dataConstructorToken")
504+
505+
(lsp-defcustom lsp-haskell-plugin-semantic-tokens-config-function-token
506+
"function"
507+
"LSP semantic token type to use for functions"
508+
:type '(choice (const "namespace") (const "type") (const "class") (const "enum")
509+
(const "interface") (const "struct") (const "typeParameter")
510+
(const "parameter") (const "variable") (const "property") (const "enumMember")
511+
(const "event") (const "function") (const "method") (const "macro")
512+
(const "keyword") (const "modifier") (const "comment") (const "string")
513+
(const "number") (const "regexp") (const "operator") (const "decorator"))
514+
:group 'lsp-haskell-plugins
515+
:package-version '(lsp-mode . "9.0.0")
516+
:lsp-path "haskell.plugin.semanticTokens.config.functionToken")
517+
518+
(lsp-defcustom lsp-haskell-plugin-semantic-tokens-config-module-token
519+
"namespace"
520+
"LSP semantic token type to use for modules"
521+
:type '(choice (const "namespace") (const "type") (const "class") (const "enum")
522+
(const "interface") (const "struct") (const "typeParameter")
523+
(const "parameter") (const "variable") (const "property") (const "enumMember")
524+
(const "event") (const "function") (const "method") (const "macro")
525+
(const "keyword") (const "modifier") (const "comment") (const "string")
526+
(const "number") (const "regexp") (const "operator") (const "decorator"))
527+
:group 'lsp-haskell-plugins
528+
:package-version '(lsp-mode . "9.0.0")
529+
:lsp-path "haskell.plugin.semanticTokens.config.moduleToken")
530+
531+
(lsp-defcustom lsp-haskell-plugin-semantic-tokens-config-operator-token
532+
"operator"
533+
"LSP semantic token type to use for operators"
534+
:type '(choice (const "namespace") (const "type") (const "class") (const "enum")
535+
(const "interface") (const "struct") (const "typeParameter")
536+
(const "parameter") (const "variable") (const "property") (const "enumMember")
537+
(const "event") (const "function") (const "method") (const "macro")
538+
(const "keyword") (const "modifier") (const "comment") (const "string")
539+
(const "number") (const "regexp") (const "operator") (const "decorator"))
540+
:group 'lsp-haskell-plugins
541+
:package-version '(lsp-mode . "9.0.0")
542+
:lsp-path "haskell.plugin.semanticTokens.config.operatorToken")
543+
544+
(lsp-defcustom lsp-haskell-plugin-semantic-tokens-config-pattern-synonym-token
545+
"macro"
546+
"LSP semantic token type to use for pattern synonyms"
547+
:type '(choice (const "namespace") (const "type") (const "class") (const "enum")
548+
(const "interface") (const "struct") (const "typeParameter")
549+
(const "parameter") (const "variable") (const "property") (const "enumMember")
550+
(const "event") (const "function") (const "method") (const "macro")
551+
(const "keyword") (const "modifier") (const "comment") (const "string")
552+
(const "number") (const "regexp") (const "operator") (const "decorator"))
553+
:group 'lsp-haskell-plugins
554+
:package-version '(lsp-mode . "9.0.0")
555+
:lsp-path "haskell.plugin.semanticTokens.config.patternSynonymToken")
556+
557+
(lsp-defcustom lsp-haskell-plugin-semantic-tokens-config-record-field-token
558+
"property"
559+
"LSP semantic token type to use for record fields"
560+
:type '(choice (const "namespace") (const "type") (const "class") (const "enum")
561+
(const "interface") (const "struct") (const "typeParameter")
562+
(const "parameter") (const "variable") (const "property") (const "enumMember")
563+
(const "event") (const "function") (const "method") (const "macro")
564+
(const "keyword") (const "modifier") (const "comment") (const "string")
565+
(const "number") (const "regexp") (const "operator") (const "decorator"))
566+
:group 'lsp-haskell-plugins
567+
:package-version '(lsp-mode . "9.0.0")
568+
:lsp-path "haskell.plugin.semanticTokens.config.recordFieldToken")
569+
570+
(lsp-defcustom lsp-haskell-plugin-semantic-tokens-config-type-constructor-token
571+
"enum"
572+
"LSP semantic token type to use for type constructors"
573+
:type '(choice (const "namespace") (const "type") (const "class") (const "enum")
574+
(const "interface") (const "struct") (const "typeParameter")
575+
(const "parameter") (const "variable") (const "property") (const "enumMember")
576+
(const "event") (const "function") (const "method") (const "macro")
577+
(const "keyword") (const "modifier") (const "comment") (const "string")
578+
(const "number") (const "regexp") (const "operator") (const "decorator"))
579+
:group 'lsp-haskell-plugins
580+
:package-version '(lsp-mode . "9.0.0")
581+
:lsp-path "haskell.plugin.semanticTokens.config.typeConstructorToken")
582+
583+
(lsp-defcustom lsp-haskell-plugin-semantic-tokens-config-type-family-token
584+
"interface"
585+
"LSP semantic token type to use for type families"
586+
:type '(choice (const "namespace") (const "type") (const "class") (const "enum")
587+
(const "interface") (const "struct") (const "typeParameter")
588+
(const "parameter") (const "variable") (const "property") (const "enumMember")
589+
(const "event") (const "function") (const "method") (const "macro")
590+
(const "keyword") (const "modifier") (const "comment") (const "string")
591+
(const "number") (const "regexp") (const "operator") (const "decorator"))
592+
:group 'lsp-haskell-plugins
593+
:package-version '(lsp-mode . "9.0.0")
594+
:lsp-path "haskell.plugin.semanticTokens.config.typeFamilyToken")
595+
596+
(lsp-defcustom lsp-haskell-plugin-semantic-tokens-config-type-synonym-token
597+
"type"
598+
"LSP semantic token type to use for type synonyms"
599+
:type '(choice (const "namespace") (const "type") (const "class") (const "enum")
600+
(const "interface") (const "struct") (const "typeParameter")
601+
(const "parameter") (const "variable") (const "property") (const "enumMember")
602+
(const "event") (const "function") (const "method") (const "macro")
603+
(const "keyword") (const "modifier") (const "comment") (const "string")
604+
(const "number") (const "regexp") (const "operator") (const "decorator"))
605+
:group 'lsp-haskell-plugins
606+
:package-version '(lsp-mode . "9.0.0")
607+
:lsp-path "haskell.plugin.semanticTokens.config.typeSynonymToken")
608+
609+
(lsp-defcustom lsp-haskell-plugin-semantic-tokens-config-type-variable-token
610+
"typeParameter"
611+
"LSP semantic token type to use for type variables"
612+
:type '(choice (const "namespace") (const "type") (const "class") (const "enum")
613+
(const "interface") (const "struct") (const "typeParameter")
614+
(const "parameter") (const "variable") (const "property") (const "enumMember")
615+
(const "event") (const "function") (const "method") (const "macro")
616+
(const "keyword") (const "modifier") (const "comment") (const "string")
617+
(const "number") (const "regexp") (const "operator") (const "decorator"))
618+
:group 'lsp-haskell-plugins
619+
:package-version '(lsp-mode . "9.0.0")
620+
:lsp-path "haskell.plugin.semanticTokens.config.typeVariableToken")
621+
622+
(lsp-defcustom lsp-haskell-plugin-semantic-tokens-config-variable-token
623+
"variable"
624+
"LSP semantic token type to use for variables"
625+
:type '(choice (const "namespace") (const "type") (const "class") (const "enum")
626+
(const "interface") (const "struct") (const "typeParameter")
627+
(const "parameter") (const "variable") (const "property") (const "enumMember")
628+
(const "event") (const "function") (const "method") (const "macro")
629+
(const "keyword") (const "modifier") (const "comment") (const "string")
630+
(const "number") (const "regexp") (const "operator") (const "decorator"))
631+
:group 'lsp-haskell-plugins
632+
:package-version '(lsp-mode . "9.0.0")
633+
:lsp-path "haskell.plugin.semanticTokens.config.variableToken")
634+
635+
(lsp-defcustom lsp-haskell-plugin-semantic-tokens-global-on nil
636+
"Enables semanticTokens plugin"
637+
:type 'boolean
638+
:group 'lsp-haskell-plugins
639+
:package-version '(lsp-mode . "9.0.0")
441640
:lsp-path "haskell.plugin.semanticTokens.globalOn")
442641

443642
;; ---------------------------------------------------------------------

0 commit comments

Comments
 (0)