openvox-editor-services 3.0.0

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 (108) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +183 -0
  3. data/Gemfile +55 -0
  4. data/LICENSE +201 -0
  5. data/README.md +305 -0
  6. data/Rakefile +260 -0
  7. data/bin/openvox-debugserver +8 -0
  8. data/bin/openvox-languageserver +8 -0
  9. data/bin/openvox-languageserver-sidecar +8 -0
  10. data/bin/puppet-debugserver +8 -0
  11. data/bin/puppet-languageserver +7 -0
  12. data/bin/puppet-languageserver-sidecar +7 -0
  13. data/lib/dsp/dsp.rb +7 -0
  14. data/lib/dsp/dsp_base.rb +62 -0
  15. data/lib/dsp/dsp_protocol.rb +4619 -0
  16. data/lib/lsp/lsp.rb +10 -0
  17. data/lib/lsp/lsp_base.rb +63 -0
  18. data/lib/lsp/lsp_custom.rb +178 -0
  19. data/lib/lsp/lsp_enums.rb +143 -0
  20. data/lib/lsp/lsp_protocol.rb +2785 -0
  21. data/lib/lsp/lsp_protocol_callhierarchy.proposed.rb +239 -0
  22. data/lib/lsp/lsp_protocol_colorprovider.rb +100 -0
  23. data/lib/lsp/lsp_protocol_configuration.rb +82 -0
  24. data/lib/lsp/lsp_protocol_declaration.rb +73 -0
  25. data/lib/lsp/lsp_protocol_foldingrange.rb +129 -0
  26. data/lib/lsp/lsp_protocol_implementation.rb +75 -0
  27. data/lib/lsp/lsp_protocol_progress.rb +200 -0
  28. data/lib/lsp/lsp_protocol_selectionrange.rb +79 -0
  29. data/lib/lsp/lsp_protocol_sematictokens.proposed.rb +340 -0
  30. data/lib/lsp/lsp_protocol_typedefinition.rb +75 -0
  31. data/lib/lsp/lsp_protocol_workspacefolders.rb +174 -0
  32. data/lib/lsp/lsp_types.rb +1534 -0
  33. data/lib/openfact_runtime.rb +26 -0
  34. data/lib/openvox_runtime.rb +61 -0
  35. data/lib/puppet-debugserver/debug_session/break_points.rb +137 -0
  36. data/lib/puppet-debugserver/debug_session/flow_control.rb +161 -0
  37. data/lib/puppet-debugserver/debug_session/hook_handlers.rb +295 -0
  38. data/lib/puppet-debugserver/debug_session/puppet_session_run_mode.rb +66 -0
  39. data/lib/puppet-debugserver/debug_session/puppet_session_state.rb +122 -0
  40. data/lib/puppet-debugserver/hooks.rb +132 -0
  41. data/lib/puppet-debugserver/message_handler.rb +277 -0
  42. data/lib/puppet-debugserver/puppet_debug_session.rb +541 -0
  43. data/lib/puppet-debugserver/puppet_monkey_patches.rb +118 -0
  44. data/lib/puppet-languageserver/client_session_state.rb +119 -0
  45. data/lib/puppet-languageserver/crash_dump.rb +50 -0
  46. data/lib/puppet-languageserver/epp/validation_provider.rb +34 -0
  47. data/lib/puppet-languageserver/facter_helper.rb +25 -0
  48. data/lib/puppet-languageserver/global_queues/sidecar_queue.rb +205 -0
  49. data/lib/puppet-languageserver/global_queues/single_instance_queue.rb +126 -0
  50. data/lib/puppet-languageserver/global_queues/validation_queue.rb +102 -0
  51. data/lib/puppet-languageserver/global_queues.rb +16 -0
  52. data/lib/puppet-languageserver/manifest/completion_provider.rb +331 -0
  53. data/lib/puppet-languageserver/manifest/definition_provider.rb +99 -0
  54. data/lib/puppet-languageserver/manifest/document_symbol_provider.rb +228 -0
  55. data/lib/puppet-languageserver/manifest/folding_provider.rb +226 -0
  56. data/lib/puppet-languageserver/manifest/format_on_type_provider.rb +143 -0
  57. data/lib/puppet-languageserver/manifest/hover_provider.rb +221 -0
  58. data/lib/puppet-languageserver/manifest/signature_provider.rb +169 -0
  59. data/lib/puppet-languageserver/manifest/validation_provider.rb +130 -0
  60. data/lib/puppet-languageserver/message_handler.rb +470 -0
  61. data/lib/puppet-languageserver/providers.rb +18 -0
  62. data/lib/puppet-languageserver/puppet_helper.rb +108 -0
  63. data/lib/puppet-languageserver/puppet_lexer_helper.rb +55 -0
  64. data/lib/puppet-languageserver/puppet_lint.rb +9 -0
  65. data/lib/puppet-languageserver/puppet_monkey_patches.rb +39 -0
  66. data/lib/puppet-languageserver/puppet_parser_helper.rb +212 -0
  67. data/lib/puppet-languageserver/puppetfile/validation_provider.rb +185 -0
  68. data/lib/puppet-languageserver/server_capabilities.rb +48 -0
  69. data/lib/puppet-languageserver/session_state/document_store.rb +272 -0
  70. data/lib/puppet-languageserver/session_state/language_client.rb +239 -0
  71. data/lib/puppet-languageserver/session_state/object_cache.rb +162 -0
  72. data/lib/puppet-languageserver/sidecar_protocol.rb +532 -0
  73. data/lib/puppet-languageserver/uri_helper.rb +46 -0
  74. data/lib/puppet-languageserver-sidecar/cache/base.rb +36 -0
  75. data/lib/puppet-languageserver-sidecar/cache/filesystem.rb +111 -0
  76. data/lib/puppet-languageserver-sidecar/cache/null.rb +27 -0
  77. data/lib/puppet-languageserver-sidecar/facter_helper.rb +41 -0
  78. data/lib/puppet-languageserver-sidecar/puppet_environment_monkey_patches.rb +52 -0
  79. data/lib/puppet-languageserver-sidecar/puppet_helper.rb +281 -0
  80. data/lib/puppet-languageserver-sidecar/puppet_modulepath_monkey_patches.rb +146 -0
  81. data/lib/puppet-languageserver-sidecar/puppet_monkey_patches.rb +9 -0
  82. data/lib/puppet-languageserver-sidecar/puppet_parser_helper.rb +77 -0
  83. data/lib/puppet-languageserver-sidecar/puppet_strings_helper.rb +399 -0
  84. data/lib/puppet-languageserver-sidecar/puppet_strings_monkey_patches.rb +16 -0
  85. data/lib/puppet-languageserver-sidecar/sidecar_protocol_extensions.rb +16 -0
  86. data/lib/puppet-languageserver-sidecar/workspace.rb +89 -0
  87. data/lib/puppet_debugserver.rb +163 -0
  88. data/lib/puppet_editor_services/connection/base.rb +62 -0
  89. data/lib/puppet_editor_services/connection/stdio.rb +25 -0
  90. data/lib/puppet_editor_services/connection/tcp.rb +34 -0
  91. data/lib/puppet_editor_services/handler/base.rb +16 -0
  92. data/lib/puppet_editor_services/handler/debug_adapter.rb +63 -0
  93. data/lib/puppet_editor_services/handler/json_rpc.rb +133 -0
  94. data/lib/puppet_editor_services/logging.rb +45 -0
  95. data/lib/puppet_editor_services/protocol/base.rb +27 -0
  96. data/lib/puppet_editor_services/protocol/debug_adapter.rb +135 -0
  97. data/lib/puppet_editor_services/protocol/debug_adapter_messages.rb +171 -0
  98. data/lib/puppet_editor_services/protocol/json_rpc.rb +241 -0
  99. data/lib/puppet_editor_services/protocol/json_rpc_messages.rb +200 -0
  100. data/lib/puppet_editor_services/server/base.rb +42 -0
  101. data/lib/puppet_editor_services/server/stdio.rb +85 -0
  102. data/lib/puppet_editor_services/server/tcp.rb +349 -0
  103. data/lib/puppet_editor_services/server.rb +15 -0
  104. data/lib/puppet_editor_services/version.rb +36 -0
  105. data/lib/puppet_editor_services.rb +8 -0
  106. data/lib/puppet_languageserver.rb +265 -0
  107. data/lib/puppet_languageserver_sidecar.rb +364 -0
  108. metadata +256 -0
data/lib/lsp/lsp.rb ADDED
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ # DO NOT MODIFY. This file is built automatically
4
+ # See tools/lsp_introspect/index.js
5
+
6
+ %w[lsp_base lsp_custom lsp_types lsp_enums lsp_protocol_callhierarchy.proposed lsp_protocol_colorprovider lsp_protocol_configuration lsp_protocol lsp_protocol_declaration lsp_protocol_foldingrange lsp_protocol_implementation lsp_protocol_progress lsp_protocol_selectionrange lsp_protocol_sematictokens.proposed lsp_protocol_typedefinition lsp_protocol_workspacefolders].each do |lib|
7
+ require "lsp/#{lib}"
8
+ rescue LoadError
9
+ require File.expand_path(File.join(File.dirname(__FILE__), lib))
10
+ end
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'json'
4
+
5
+ module LSP
6
+ class LSPBase
7
+ def initialize(initial_hash = nil)
8
+ from_h!(initial_hash) unless initial_hash.nil?
9
+ end
10
+
11
+ def to_h
12
+ value = {}
13
+ optional_names = @optional_method_names.nil? ? [] : @optional_method_names
14
+
15
+ instance_method_names.each do |name|
16
+ item_value = send(name)
17
+ if item_value.is_a?(Array)
18
+ # Convert the items in the array .to_h
19
+ item_value = item_value.map { |item| item.respond_to?(:to_h) ? item.to_h : item }
20
+ elsif !item_value.nil? && item_value.respond_to?(:to_h)
21
+ item_value = item_value.to_h
22
+ end
23
+ valuename = name.to_s.end_with?('__lsp') ? name.to_s[0...-5] : name.to_s
24
+ value[valuename] = item_value unless optional_names.include?(name) && item_value.nil?
25
+ end
26
+
27
+ value
28
+ end
29
+
30
+ def from_h!(value); end
31
+
32
+ def to_json(*options)
33
+ to_h.to_json(options)
34
+ end
35
+
36
+ private
37
+
38
+ def instance_method_names
39
+ method_names = methods - LSP::LSPBase.instance_methods
40
+
41
+ method_names.reject { |name| name.to_s.end_with?('=') }
42
+ end
43
+
44
+ def to_typed_aray(val, expected_type)
45
+ return nil if val.nil?
46
+
47
+ val.map { |item| expected_type.new(item) }
48
+ end
49
+ end
50
+
51
+ def self.create_range(from_line, from_char, to_line, to_char)
52
+ {
53
+ 'start' => {
54
+ 'line' => from_line,
55
+ 'character' => from_char
56
+ },
57
+ 'end' => {
58
+ 'line' => to_line,
59
+ 'character' => to_char
60
+ }
61
+ }
62
+ end
63
+ end
@@ -0,0 +1,178 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Custom LSP Messages
4
+ # rubocop:disable Naming/MethodName
5
+
6
+ module LSP
7
+ # export interface PuppetVersionDetails {
8
+ # puppetVersion: string;
9
+ # facterVersion: string;
10
+ # languageServerVersion: string;
11
+ # runtimeName: string;
12
+ # runtimeGemVersion: string;
13
+ # factRuntimeName: string;
14
+ # factRuntimeGemVersion: string;
15
+ # factsLoaded: boolean;
16
+ # functionsLoaded: boolean;
17
+ # typesLoaded: boolean;
18
+ # classesLoaded: boolean;
19
+ # }
20
+ class PuppetVersion < LSPBase
21
+ attr_accessor :puppetVersion, :facterVersion, :languageServerVersion, :runtimeName, :runtimeGemVersion, :factRuntimeName, :factRuntimeGemVersion, :factsLoaded, :functionsLoaded, :typesLoaded, :classesLoaded # type: string # type: string # type: string # type: string # type: string # type: string # type: string # type: boolean # type: boolean # type: boolean # type: boolean
22
+
23
+ def from_h!(value)
24
+ value = {} if value.nil?
25
+ self.puppetVersion = value['puppetVersion']
26
+ self.facterVersion = value['facterVersion']
27
+ self.languageServerVersion = value['languageServerVersion']
28
+ self.runtimeName = value['runtimeName']
29
+ self.runtimeGemVersion = value['runtimeGemVersion']
30
+ self.factRuntimeName = value['factRuntimeName']
31
+ self.factRuntimeGemVersion = value['factRuntimeGemVersion']
32
+ self.factsLoaded = value['factsLoaded']
33
+ self.functionsLoaded = value['functionsLoaded']
34
+ self.typesLoaded = value['typesLoaded']
35
+ self.classesLoaded = value['classesLoaded']
36
+ self
37
+ end
38
+ end
39
+
40
+ # export interface GetPuppetFactResponse {
41
+ # data: string;
42
+ # error: string;
43
+ # }
44
+ class PuppetFactResponse < LSPBase
45
+ attr_accessor :facts, :error # type: string # type: string
46
+
47
+ def initialize(initial_hash = nil)
48
+ super
49
+ @optional_method_names = %i[error]
50
+ end
51
+
52
+ def from_h!(value)
53
+ value = {} if value.nil?
54
+ self.facts = value['facts']
55
+ self.error = value['error']
56
+ self
57
+ end
58
+ end
59
+
60
+ # export interface GetPuppetResourceResponse {
61
+ # data: string;
62
+ # error: string;
63
+ # }
64
+ class PuppetResourceResponse < LSPBase
65
+ attr_accessor :data, :error # type: string # type: string
66
+
67
+ def initialize(initial_hash = nil)
68
+ super
69
+ @optional_method_names = %i[error]
70
+ end
71
+
72
+ def from_h!(value)
73
+ value = {} if value.nil?
74
+ self.data = value['data']
75
+ self.error = value['error']
76
+ self
77
+ end
78
+ end
79
+
80
+ # export interface PuppetNodeGraphResponse {
81
+ # dotContent: string;
82
+ # data: string;
83
+ # }
84
+ class PuppetNodeGraphResponse < LSPBase
85
+ attr_accessor :vertices, :edges, :error # type: string # type: string # type: string
86
+
87
+ def initialize(initial_hash = nil)
88
+ super
89
+ @optional_method_names = %i[error]
90
+ end
91
+
92
+ def from_h!(value)
93
+ value = {} if value.nil?
94
+ self.vertices = value['vertices']
95
+ self.edges = value['edges']
96
+ self.error = value['error']
97
+ self
98
+ end
99
+ end
100
+
101
+ # export interface PuppetfileDependencyResponse {
102
+ # dotContent: string;
103
+ # data: string;
104
+ # }
105
+ class PuppetfileDependencyResponse < LSPBase
106
+ attr_accessor :dependencies, :error # type: string[] # type: string
107
+
108
+ def initialize(initial_hash = nil)
109
+ super
110
+ @optional_method_names = %i[error]
111
+ end
112
+
113
+ def from_h!(value)
114
+ value = {} if value.nil?
115
+ self.dependencies = value['dependencies']
116
+ self.error = value['error']
117
+ self
118
+ end
119
+ end
120
+
121
+ # export interface CompileNodeGraphResponse {
122
+ # dotContent: string;
123
+ # data: string;
124
+ # }
125
+ class CompileNodeGraphResponse < LSPBase
126
+ attr_accessor :dotContent, :error # type: string # type: string
127
+
128
+ def initialize(initial_hash = nil)
129
+ super
130
+ @optional_method_names = %i[error]
131
+ end
132
+
133
+ def from_h!(value)
134
+ value = {} if value.nil?
135
+ self.dotContent = value['dotContent']
136
+ self.error = value['error']
137
+ self
138
+ end
139
+ end
140
+
141
+ # export interface PuppetFixDiagnosticErrorsRequestParams {
142
+ # documentUri: string;
143
+ # alwaysReturnContent: boolean;
144
+ # }
145
+ class PuppetFixDiagnosticErrorsRequest < LSPBase
146
+ attr_accessor :documentUri, :alwaysReturnContent # type: string # type: boolean
147
+
148
+ def from_h!(value)
149
+ value = {} if value.nil?
150
+ self.documentUri = value['documentUri']
151
+ self.alwaysReturnContent = value['alwaysReturnContent']
152
+ self
153
+ end
154
+ end
155
+
156
+ # export interface PuppetFixDiagnosticErrorsResponse {
157
+ # documentUri: string;
158
+ # fixesApplied: number;
159
+ # newContent?: string;
160
+ # }
161
+ class PuppetFixDiagnosticErrorsResponse < LSPBase
162
+ attr_accessor :documentUri, :fixesApplied, :newContent # type: string # type: number # type: string
163
+
164
+ def initialize(initial_hash = nil)
165
+ super
166
+ @optional_method_names = %i[newContent]
167
+ end
168
+
169
+ def from_h!(value)
170
+ value = {} if value.nil?
171
+ self.documentUri = value['documentUri']
172
+ self.fixesApplied = value['fixesApplied']
173
+ self.newContent = value['newContent']
174
+ self
175
+ end
176
+ end
177
+ end
178
+ # rubocop:enable Naming/MethodName
@@ -0,0 +1,143 @@
1
+ # frozen_string_literal: true
2
+
3
+ # DO NOT MODIFY. This file is built automatically
4
+ # LSP Enumerations
5
+
6
+ module LSP
7
+ module DiagnosticSeverity
8
+ ERROR = 1
9
+ WARNING = 2
10
+ INFORMATION = 3
11
+ HINT = 4
12
+ end
13
+
14
+ module MarkupKind
15
+ PLAINTEXT = 'plaintext'
16
+ MARKDOWN = 'markdown'
17
+ end
18
+
19
+ module CompletionItemKind
20
+ TEXT = 1
21
+ METHOD = 2
22
+ FUNCTION = 3
23
+ CONSTRUCTOR = 4
24
+ FIELD = 5
25
+ VARIABLE = 6
26
+ CLASS = 7
27
+ INTERFACE = 8
28
+ MODULE = 9
29
+ PROPERTY = 10
30
+ UNIT = 11
31
+ VALUE = 12
32
+ ENUM = 13
33
+ KEYWORD = 14
34
+ SNIPPET = 15
35
+ COLOR = 16
36
+ FILE = 17
37
+ REFERENCE = 18
38
+ FOLDER = 19
39
+ ENUMMEMBER = 20
40
+ CONSTANT = 21
41
+ STRUCT = 22
42
+ EVENT = 23
43
+ OPERATOR = 24
44
+ TYPEPARAMETER = 25
45
+ end
46
+
47
+ module InsertTextFormat
48
+ PLAINTEXT = 1
49
+ SNIPPET = 2
50
+ end
51
+
52
+ module DocumentHighlightKind
53
+ TEXT = 1
54
+ READ = 2
55
+ WRITE = 3
56
+ end
57
+
58
+ module SymbolKind
59
+ FILE = 1
60
+ MODULE = 2
61
+ NAMESPACE = 3
62
+ PACKAGE = 4
63
+ CLASS = 5
64
+ METHOD = 6
65
+ PROPERTY = 7
66
+ FIELD = 8
67
+ CONSTRUCTOR = 9
68
+ ENUM = 10
69
+ INTERFACE = 11
70
+ FUNCTION = 12
71
+ VARIABLE = 13
72
+ CONSTANT = 14
73
+ STRING = 15
74
+ NUMBER = 16
75
+ BOOLEAN = 17
76
+ ARRAY = 18
77
+ OBJECT = 19
78
+ KEY = 20
79
+ NULL = 21
80
+ ENUMMEMBER = 22
81
+ STRUCT = 23
82
+ EVENT = 24
83
+ OPERATOR = 25
84
+ TYPEPARAMETER = 26
85
+ end
86
+
87
+ module CodeActionKind
88
+ EMPTY = ''
89
+ QUICKFIX = 'quickfix'
90
+ REFACTOR = 'refactor'
91
+ REFACTOREXTRACT = 'refactor.extract'
92
+ REFACTORINLINE = 'refactor.inline'
93
+ REFACTORREWRITE = 'refactor.rewrite'
94
+ SOURCE = 'source'
95
+ SOURCEORGANIZEIMPORTS = 'source.organizeImports'
96
+ SOURCEFIXALL = 'source.fixAll'
97
+ end
98
+
99
+ module TextDocumentSaveReason
100
+ MANUAL = 1
101
+ AFTERDELAY = 2
102
+ FOCUSOUT = 3
103
+ end
104
+
105
+ module ResourceOperationKind
106
+ CREATE = 'create'
107
+ RENAME = 'rename'
108
+ DELETE = 'delete'
109
+ end
110
+
111
+ module FailureHandlingKind
112
+ ABORT = 'abort'
113
+ TRANSACTIONAL = 'transactional'
114
+ TEXTONLYTRANSACTIONAL = 'textOnlyTransactional'
115
+ UNDO = 'undo'
116
+ end
117
+
118
+ module TextDocumentSyncKind
119
+ FULL = 1
120
+ INCREMENTAL = 2
121
+ end
122
+
123
+ module MessageType
124
+ ERROR = 1
125
+ WARNING = 2
126
+ INFO = 3
127
+ LOG = 4
128
+ end
129
+
130
+ module FileChangeType
131
+ CREATED = 1
132
+ CHANGED = 2
133
+ DELETED = 3
134
+ end
135
+
136
+ module CompletionTriggerKind
137
+ INVOKED = 1
138
+ TRIGGERCHARACTER = 2
139
+ TRIGGERFORINCOMPLETECOMPLETIONS = 3
140
+ end
141
+ end
142
+
143
+ # rubocop:enable Style/AsciiComments