Skip to content

Commit 6a58e46

Browse files
authored
Adding proper types for enum options
1 parent c64d66a commit 6a58e46

File tree

1 file changed

+176
-75
lines changed

1 file changed

+176
-75
lines changed

lsp-haskell.el

Lines changed: 176 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ but will take exponentially more time."
235235
:type 'boolean
236236
:lsp-path "haskell.plugin.refineImports.globalOn")
237237

238-
;; Updated for haskell-language-server 2.9.0.1
238+
;; Updated for haskell-language-server 2.1.0.0
239239

240240
(lsp-defcustom lsp-haskell-plugin-cabal-code-actions-on t
241241
"Enables cabal code actions"
@@ -251,13 +251,6 @@ but will take exponentially more time."
251251
:package-version '(lsp-mode . "8.0.1")
252252
:lsp-path "haskell.plugin.cabal.completionOn")
253253

254-
(lsp-defcustom lsp-haskell-plugin-cabal-diagnostics-on t
255-
"Enables cabal diagnostics"
256-
:type 'boolean
257-
:group 'lsp-haskell-plugins
258-
:package-version '(lsp-mode . "8.0.1")
259-
:lsp-path "haskell.plugin.cabal.diagnosticsOn")
260-
261254
(lsp-defcustom lsp-haskell-plugin-pragmas-suggest-global-on t
262255
"Enables pragmas-suggest plugin"
263256
:type 'boolean
@@ -440,104 +433,212 @@ but will take exponentially more time."
440433
:package-version '(lsp-mode . "8.0.1")
441434
:lsp-path "haskell.plugin.rename.globalOn")
442435

443-
(lsp-defcustom lsp-haskell-plugin-semantic-tokens-global-on t
444-
"Enables semantic tokens plugin"
445-
:type 'boolean
446-
:group 'lsp-haskell-plugins
447-
:package-version '(lsp-mode . "8.0.1")
448-
:lsp-path "haskell.plugin.semanticTokens.globalOn")
436+
;; Updated for haskell-language-server 2.9.0.1
449437

450-
(lsp-defcustom lsp-haskell-plugin-semantic-tokens-config-class-method-token "method"
451-
"Semantic tokens class method token"
438+
(lsp-defcustom lsp-haskell-plugin-cabal-fmt-config-path "cabal-fmt"
439+
"Set path to 'cabal-fmt' executable"
452440
:type 'string
453441
:group 'lsp-haskell-plugins
454-
:package-version '(lsp-mode . "8.0.1")
455-
:lsp-path "haskell.plugin.semanticTokens.config.classMethodToken")
442+
:package-version '(lsp-mode . "9.0.0")
443+
:lsp-path "haskell.plugin.cabal-fmt.config.path")
456444

457-
(lsp-defcustom lsp-haskell-plugin-semantic-tokens-config-class-token "class"
458-
"Semantic tokens class token"
445+
(lsp-defcustom lsp-haskell-plugin-cabal-gild-config-path "cabal-gild"
446+
"Set path to 'cabal-gild' executable"
459447
:type 'string
460448
:group 'lsp-haskell-plugins
461-
:package-version '(lsp-mode . "8.0.1")
462-
:lsp-path "haskell.plugin.semanticTokens.config.classToken")
449+
:package-version '(lsp-mode . "9.0.0")
450+
:lsp-path "haskell.plugin.cabal-gild.config.path")
463451

464-
(lsp-defcustom lsp-haskell-plugin-semantic-tokens-config-data-constructor-token "enumMember"
465-
"Semantic tokens data constructor token"
466-
:type 'string
452+
(lsp-defcustom lsp-haskell-plugin-cabal-diagnostics-on t
453+
"Enables cabal diagnostics"
454+
:type 'boolean
467455
:group 'lsp-haskell-plugins
468-
:package-version '(lsp-mode . "8.0.1")
469-
:lsp-path "haskell.plugin.semanticTokens.config.dataConstructorToken")
456+
:package-version '(lsp-mode . "9.0.0")
457+
:lsp-path "haskell.plugin.cabal.diagnosticsOn")
470458

471-
(lsp-defcustom lsp-haskell-plugin-semantic-tokens-config-function-token "function"
472-
"Semantic tokens function token"
459+
(lsp-defcustom lsp-haskell-plugin-fourmolu-config-path "fourmolu"
460+
"Set path to executable (for \"external\" mode)."
473461
:type 'string
474462
:group 'lsp-haskell-plugins
475-
:package-version '(lsp-mode . "8.0.1")
476-
:lsp-path "haskell.plugin.semanticTokens.config.functionToken")
463+
:package-version '(lsp-mode . "9.0.0")
464+
:lsp-path "haskell.plugin.fourmolu.config.path")
477465

478-
(lsp-defcustom lsp-haskell-plugin-semantic-tokens-config-module-token "module"
479-
"Semantic tokens module token"
480-
:type 'string
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"))
481475
:group 'lsp-haskell-plugins
482-
:package-version '(lsp-mode . "8.0.1")
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")
483529
:lsp-path "haskell.plugin.semanticTokens.config.moduleToken")
484530

485-
(lsp-defcustom lsp-haskell-plugin-semantic-tokens-config-operator-token "operator"
486-
"Semantic tokens operator token"
487-
:type 'string
488-
:group 'lsp-haskell-plugins
489-
:package-version '(lsp-mode . "8.0.1")
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")
490542
:lsp-path "haskell.plugin.semanticTokens.config.operatorToken")
491543

492-
(lsp-defcustom lsp-haskell-plugin-semantic-tokens-config-pattern-synonym-token "macro"
493-
"Semantic tokens pattern synonym token"
494-
:type 'string
495-
:group 'lsp-haskell-plugins
496-
:package-version '(lsp-mode . "8.0.1")
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")
497555
:lsp-path "haskell.plugin.semanticTokens.config.patternSynonymToken")
498556

499-
(lsp-defcustom lsp-haskell-plugin-semantic-tokens-config-record-field-token "property"
500-
"Semantic tokens record field token"
501-
:type 'string
502-
:group 'lsp-haskell-plugins
503-
:package-version '(lsp-mode . "8.0.1")
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")
504568
:lsp-path "haskell.plugin.semanticTokens.config.recordFieldToken")
505569

506-
(lsp-defcustom lsp-haskell-plugin-semantic-tokens-config-type-constructor-token "enum"
507-
"Semantic tokens type constructor token"
508-
:type 'string
509-
:group 'lsp-haskell-plugins
510-
:package-version '(lsp-mode . "8.0.1")
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")
511581
:lsp-path "haskell.plugin.semanticTokens.config.typeConstructorToken")
512582

513-
(lsp-defcustom lsp-haskell-plugin-semantic-tokens-config-type-family-token "interface"
514-
"Semantic tokens type family token"
515-
:type 'string
516-
:group 'lsp-haskell-plugins
517-
:package-version '(lsp-mode . "8.0.1")
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")
518594
:lsp-path "haskell.plugin.semanticTokens.config.typeFamilyToken")
519595

520-
(lsp-defcustom lsp-haskell-plugin-semantic-tokens-config-type-synonym-token "type"
521-
"Semantic tokens type synonym token"
522-
:type 'string
523-
:group 'lsp-haskell-plugins
524-
:package-version '(lsp-mode . "8.0.1")
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")
525607
:lsp-path "haskell.plugin.semanticTokens.config.typeSynonymToken")
526608

527-
(lsp-defcustom lsp-haskell-plugin-semantic-tokens-config-type-variable-token "typeParameter"
528-
"Semantic tokens type variable token"
529-
:type 'string
530-
:group 'lsp-haskell-plugins
531-
:package-version '(lsp-mode . "8.0.1")
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")
532620
:lsp-path "haskell.plugin.semanticTokens.config.typeVariableToken")
533621

534-
(lsp-defcustom lsp-haskell-plugin-semantic-tokens-config-variable-token "variable"
535-
"Semantic tokens variable token"
536-
:type 'string
537-
:group 'lsp-haskell-plugins
538-
:package-version '(lsp-mode . "8.0.1")
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")
539633
:lsp-path "haskell.plugin.semanticTokens.config.variableToken")
540634

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")
640+
:lsp-path "haskell.plugin.semanticTokens.globalOn")
641+
541642
;; ---------------------------------------------------------------------
542643
;; Non-language server options
543644

0 commit comments

Comments
 (0)