@herb-tools/language-server 0.8.10 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/action_view_helpers.js +19 -0
  2. package/dist/action_view_helpers.js.map +1 -0
  3. package/dist/autofix_service.js +1 -1
  4. package/dist/autofix_service.js.map +1 -1
  5. package/dist/code_action_service.js +3 -6
  6. package/dist/code_action_service.js.map +1 -1
  7. package/dist/comment_ast_utils.js +206 -0
  8. package/dist/comment_ast_utils.js.map +1 -0
  9. package/dist/comment_service.js +175 -0
  10. package/dist/comment_service.js.map +1 -0
  11. package/dist/diagnostics.js +0 -233
  12. package/dist/diagnostics.js.map +1 -1
  13. package/dist/document_highlight_service.js +196 -0
  14. package/dist/document_highlight_service.js.map +1 -0
  15. package/dist/document_save_service.js +16 -6
  16. package/dist/document_save_service.js.map +1 -1
  17. package/dist/folding_range_service.js +209 -0
  18. package/dist/folding_range_service.js.map +1 -0
  19. package/dist/formatting_service.js +4 -4
  20. package/dist/formatting_service.js.map +1 -1
  21. package/dist/herb-language-server.js +152936 -41156
  22. package/dist/herb-language-server.js.map +1 -1
  23. package/dist/hover_service.js +70 -0
  24. package/dist/hover_service.js.map +1 -0
  25. package/dist/index.cjs +1299 -333
  26. package/dist/index.cjs.map +1 -1
  27. package/dist/index.js +4 -0
  28. package/dist/index.js.map +1 -1
  29. package/dist/line_context_collector.js +73 -0
  30. package/dist/line_context_collector.js.map +1 -0
  31. package/dist/linter_service.js +27 -6
  32. package/dist/linter_service.js.map +1 -1
  33. package/dist/parser_service.js +6 -5
  34. package/dist/parser_service.js.map +1 -1
  35. package/dist/range_utils.js +65 -0
  36. package/dist/range_utils.js.map +1 -0
  37. package/dist/rewrite_code_action_service.js +135 -0
  38. package/dist/rewrite_code_action_service.js.map +1 -0
  39. package/dist/server.js +39 -2
  40. package/dist/server.js.map +1 -1
  41. package/dist/service.js +10 -0
  42. package/dist/service.js.map +1 -1
  43. package/dist/types/action_view_helpers.d.ts +5 -0
  44. package/dist/types/comment_ast_utils.d.ts +20 -0
  45. package/dist/types/comment_service.d.ts +14 -0
  46. package/dist/types/diagnostics.d.ts +1 -35
  47. package/dist/types/document_highlight_service.d.ts +28 -0
  48. package/dist/types/document_save_service.d.ts +8 -0
  49. package/dist/types/folding_range_service.d.ts +35 -0
  50. package/dist/types/formatting_service.d.ts +1 -1
  51. package/dist/types/hover_service.d.ts +8 -0
  52. package/dist/types/index.d.ts +4 -0
  53. package/dist/types/line_context_collector.d.ts +19 -0
  54. package/dist/types/linter_service.d.ts +1 -0
  55. package/dist/types/parser_service.d.ts +2 -1
  56. package/dist/types/range_utils.d.ts +16 -0
  57. package/dist/types/rewrite_code_action_service.d.ts +11 -0
  58. package/dist/types/service.d.ts +10 -0
  59. package/dist/types/utils.d.ts +4 -8
  60. package/dist/utils.js +10 -15
  61. package/dist/utils.js.map +1 -1
  62. package/package.json +10 -5
  63. package/src/action_view_helpers.ts +23 -0
  64. package/src/autofix_service.ts +1 -1
  65. package/src/code_action_service.ts +3 -6
  66. package/src/comment_ast_utils.ts +282 -0
  67. package/src/comment_service.ts +228 -0
  68. package/src/diagnostics.ts +1 -305
  69. package/src/document_highlight_service.ts +267 -0
  70. package/src/document_save_service.ts +19 -7
  71. package/src/folding_range_service.ts +287 -0
  72. package/src/formatting_service.ts +4 -4
  73. package/src/hover_service.ts +90 -0
  74. package/src/index.ts +4 -0
  75. package/src/line_context_collector.ts +97 -0
  76. package/src/linter_service.ts +35 -9
  77. package/src/parser_service.ts +9 -10
  78. package/src/range_utils.ts +90 -0
  79. package/src/rewrite_code_action_service.ts +165 -0
  80. package/src/server.ts +54 -2
  81. package/src/service.ts +15 -0
  82. package/src/utils.ts +12 -21
package/src/service.ts CHANGED
@@ -12,6 +12,11 @@ import { ConfigService } from "./config_service"
12
12
  import { AutofixService } from "./autofix_service"
13
13
  import { CodeActionService } from "./code_action_service"
14
14
  import { DocumentSaveService } from "./document_save_service"
15
+ import { FoldingRangeService } from "./folding_range_service"
16
+ import { DocumentHighlightService } from "./document_highlight_service"
17
+ import { HoverService } from "./hover_service"
18
+ import { RewriteCodeActionService } from "./rewrite_code_action_service"
19
+ import { CommentService } from "./comment_service"
15
20
 
16
21
  import { version } from "../package.json"
17
22
 
@@ -30,6 +35,11 @@ export class Service {
30
35
  configService: ConfigService
31
36
  codeActionService: CodeActionService
32
37
  documentSaveService: DocumentSaveService
38
+ foldingRangeService: FoldingRangeService
39
+ documentHighlightService: DocumentHighlightService
40
+ hoverService: HoverService
41
+ rewriteCodeActionService: RewriteCodeActionService
42
+ commentService: CommentService
33
43
 
34
44
  constructor(connection: Connection, params: InitializeParams) {
35
45
  this.connection = connection
@@ -44,6 +54,11 @@ export class Service {
44
54
  this.codeActionService = new CodeActionService(this.project, this.config)
45
55
  this.diagnostics = new Diagnostics(this.connection, this.documentService, this.parserService, this.linterService, this.configService)
46
56
  this.documentSaveService = new DocumentSaveService(this.connection, this.settings, this.autofixService, this.formattingService)
57
+ this.foldingRangeService = new FoldingRangeService(this.parserService)
58
+ this.documentHighlightService = new DocumentHighlightService(this.parserService)
59
+ this.hoverService = new HoverService(this.parserService)
60
+ this.rewriteCodeActionService = new RewriteCodeActionService(this.parserService)
61
+ this.commentService = new CommentService(this.parserService)
47
62
 
48
63
  if (params.initializationOptions) {
49
64
  this.settings.globalSettings = params.initializationOptions as PersonalHerbSettings
package/src/utils.ts CHANGED
@@ -1,10 +1,6 @@
1
- import { DiagnosticSeverity } from "vscode-languageserver/node"
1
+ import { DiagnosticSeverity, DiagnosticTag } from "vscode-languageserver/node"
2
2
  import type { LintSeverity } from "@herb-tools/linter"
3
-
4
- import { Position } from "vscode-languageserver/node"
5
-
6
- import type { Range } from "vscode-languageserver/node"
7
- import type { TextDocument } from "vscode-languageserver-textdocument"
3
+ import type { DiagnosticSeverity as HerbDiagnosticSeverity, DiagnosticTag as HerbDiagnosticTag } from "@herb-tools/core"
8
4
 
9
5
  export function camelize(value: string) {
10
6
  return value.replace(/(?:[_-])([a-z0-9])/g, (_, char) => char.toUpperCase())
@@ -18,7 +14,7 @@ export function capitalize(value: string) {
18
14
  return value.charAt(0).toUpperCase() + value.slice(1)
19
15
  }
20
16
 
21
- export function lintToDignosticSeverity(severity: LintSeverity): DiagnosticSeverity {
17
+ export function lintToDignosticSeverity(severity: LintSeverity | HerbDiagnosticSeverity): DiagnosticSeverity {
22
18
  switch (severity) {
23
19
  case "error": return DiagnosticSeverity.Error
24
20
  case "warning": return DiagnosticSeverity.Warning
@@ -27,19 +23,14 @@ export function lintToDignosticSeverity(severity: LintSeverity): DiagnosticSever
27
23
  }
28
24
  }
29
25
 
30
- /**
31
- * Returns a Range that spans the entire document
32
- */
33
- export function getFullDocumentRange(document: TextDocument): Range {
34
- const lastLine = document.lineCount - 1
35
- const lastLineText = document.getText({
36
- start: Position.create(lastLine, 0),
37
- end: Position.create(lastLine + 1, 0)
38
- })
39
- const lastLineLength = lastLineText.length
26
+ export function lintToDignosticTags(tags?: HerbDiagnosticTag[]): DiagnosticTag[] {
27
+ if (!tags) return []
40
28
 
41
- return {
42
- start: Position.create(0, 0),
43
- end: Position.create(lastLine, lastLineLength)
44
- }
29
+ return tags.flatMap(tag => {
30
+ switch (tag) {
31
+ case "unnecessary": return [DiagnosticTag.Unnecessary]
32
+ case "deprecated": return [DiagnosticTag.Deprecated]
33
+ default: return []
34
+ }
35
+ })
45
36
  }