language_server-protocol 3.14.0.0 → 3.15.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (179) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +9 -1
  3. data/lib/language_server/protocol/constant.rb +8 -0
  4. data/lib/language_server/protocol/constant/code_action_kind.rb +12 -8
  5. data/lib/language_server/protocol/constant/completion_item_tag.rb +16 -0
  6. data/lib/language_server/protocol/constant/diagnostic_tag.rb +24 -0
  7. data/lib/language_server/protocol/constant/signature_help_trigger_kind.rb +23 -0
  8. data/lib/language_server/protocol/constant/text_document_sync_kind.rb +1 -0
  9. data/lib/language_server/protocol/interface.rb +158 -6
  10. data/lib/language_server/protocol/interface/apply_workspace_edit_response.rb +13 -1
  11. data/lib/language_server/protocol/interface/client_capabilities.rb +11 -2
  12. data/lib/language_server/protocol/interface/code_action.rb +14 -1
  13. data/lib/language_server/protocol/interface/code_action_client_capabilities.rb +52 -0
  14. data/lib/language_server/protocol/interface/code_action_context.rb +5 -1
  15. data/lib/language_server/protocol/interface/code_action_options.rb +3 -5
  16. data/lib/language_server/protocol/interface/code_action_params.rb +3 -2
  17. data/lib/language_server/protocol/interface/code_action_registration_options.rb +3 -1
  18. data/lib/language_server/protocol/interface/code_lens_client_capabilities.rb +33 -0
  19. data/lib/language_server/protocol/interface/code_lens_options.rb +3 -5
  20. data/lib/language_server/protocol/interface/code_lens_params.rb +3 -2
  21. data/lib/language_server/protocol/interface/code_lens_registration_options.rb +3 -10
  22. data/lib/language_server/protocol/interface/color_presentation_params.rb +3 -2
  23. data/lib/language_server/protocol/interface/completion_client_capabilities.rb +59 -0
  24. data/lib/language_server/protocol/interface/completion_item.rb +16 -5
  25. data/lib/language_server/protocol/interface/completion_options.rb +33 -11
  26. data/lib/language_server/protocol/interface/completion_params.rb +3 -2
  27. data/lib/language_server/protocol/interface/completion_registration_options.rb +4 -26
  28. data/lib/language_server/protocol/interface/declaration_client_capabilities.rb +44 -0
  29. data/lib/language_server/protocol/interface/declaration_options.rb +25 -0
  30. data/lib/language_server/protocol/interface/declaration_params.rb +25 -0
  31. data/lib/language_server/protocol/interface/{folding_range_provider_options.rb → declaration_registration_options.rb} +3 -5
  32. data/lib/language_server/protocol/interface/definition_client_capabilities.rb +42 -0
  33. data/lib/language_server/protocol/interface/definition_options.rb +25 -0
  34. data/lib/language_server/protocol/interface/definition_params.rb +25 -0
  35. data/lib/language_server/protocol/interface/definition_registration_options.rb +25 -0
  36. data/lib/language_server/protocol/interface/diagnostic.rb +11 -2
  37. data/lib/language_server/protocol/interface/diagnostic_related_information.rb +1 -1
  38. data/lib/language_server/protocol/interface/did_change_configuration_client_capabilities.rb +33 -0
  39. data/lib/language_server/protocol/interface/did_change_text_document_params.rb +10 -2
  40. data/lib/language_server/protocol/interface/did_change_watched_files_client_capabilities.rb +35 -0
  41. data/lib/language_server/protocol/interface/did_change_watched_files_registration_options.rb +1 -1
  42. data/lib/language_server/protocol/interface/document_color_client_capabilities.rb +33 -0
  43. data/lib/language_server/protocol/interface/document_color_options.rb +25 -0
  44. data/lib/language_server/protocol/interface/document_color_params.rb +34 -0
  45. data/lib/language_server/protocol/interface/document_color_registration_options.rb +25 -0
  46. data/lib/language_server/protocol/interface/document_formatting_client_capabilities.rb +33 -0
  47. data/lib/language_server/protocol/interface/document_formatting_options.rb +25 -0
  48. data/lib/language_server/protocol/interface/document_formatting_params.rb +3 -2
  49. data/lib/language_server/protocol/interface/document_formatting_registration_options.rb +25 -0
  50. data/lib/language_server/protocol/interface/document_highlight_client_capabilities.rb +33 -0
  51. data/lib/language_server/protocol/interface/document_highlight_options.rb +25 -0
  52. data/lib/language_server/protocol/interface/document_highlight_params.rb +25 -0
  53. data/lib/language_server/protocol/interface/document_highlight_registration_options.rb +25 -0
  54. data/lib/language_server/protocol/interface/document_link.rb +14 -1
  55. data/lib/language_server/protocol/interface/document_link_client_capabilities.rb +42 -0
  56. data/lib/language_server/protocol/interface/document_link_options.rb +3 -5
  57. data/lib/language_server/protocol/interface/document_link_params.rb +3 -2
  58. data/lib/language_server/protocol/interface/document_link_registration_options.rb +3 -10
  59. data/lib/language_server/protocol/interface/document_on_type_formatting_client_capabilities.rb +33 -0
  60. data/lib/language_server/protocol/interface/document_on_type_formatting_options.rb +0 -3
  61. data/lib/language_server/protocol/interface/document_on_type_formatting_params.rb +1 -17
  62. data/lib/language_server/protocol/interface/document_on_type_formatting_registration_options.rb +2 -18
  63. data/lib/language_server/protocol/interface/document_range_formatting_client_capabilities.rb +33 -0
  64. data/lib/language_server/protocol/interface/document_range_formatting_options.rb +25 -0
  65. data/lib/language_server/protocol/interface/document_range_formatting_params.rb +3 -2
  66. data/lib/language_server/protocol/interface/document_range_formatting_registration_options.rb +25 -0
  67. data/lib/language_server/protocol/interface/document_symbol.rb +96 -0
  68. data/lib/language_server/protocol/interface/document_symbol_client_capabilities.rb +51 -0
  69. data/lib/language_server/protocol/interface/document_symbol_options.rb +25 -0
  70. data/lib/language_server/protocol/interface/document_symbol_params.rb +3 -2
  71. data/lib/language_server/protocol/interface/document_symbol_registration_options.rb +25 -0
  72. data/lib/language_server/protocol/interface/execute_command_client_capabilities.rb +33 -0
  73. data/lib/language_server/protocol/interface/execute_command_options.rb +3 -5
  74. data/lib/language_server/protocol/interface/execute_command_params.rb +3 -2
  75. data/lib/language_server/protocol/interface/execute_command_registration_options.rb +3 -10
  76. data/lib/language_server/protocol/interface/folding_range.rb +1 -1
  77. data/lib/language_server/protocol/interface/folding_range_client_capabilities.rb +55 -0
  78. data/lib/language_server/protocol/interface/folding_range_options.rb +25 -0
  79. data/lib/language_server/protocol/interface/folding_range_params.rb +3 -2
  80. data/lib/language_server/protocol/interface/{color_provider_options.rb → folding_range_registration_options.rb} +3 -5
  81. data/lib/language_server/protocol/interface/formatting_options.rb +28 -1
  82. data/lib/language_server/protocol/interface/hover_client_capabilities.rb +43 -0
  83. data/lib/language_server/protocol/interface/hover_options.rb +25 -0
  84. data/lib/language_server/protocol/interface/hover_params.rb +25 -0
  85. data/lib/language_server/protocol/interface/hover_registration_options.rb +25 -0
  86. data/lib/language_server/protocol/interface/implementation_client_capabilities.rb +44 -0
  87. data/lib/language_server/protocol/interface/implementation_options.rb +25 -0
  88. data/lib/language_server/protocol/interface/implementation_params.rb +25 -0
  89. data/lib/language_server/protocol/interface/implementation_registration_options.rb +25 -0
  90. data/lib/language_server/protocol/interface/initialize_params.rb +12 -4
  91. data/lib/language_server/protocol/interface/initialize_result.rb +10 -1
  92. data/lib/language_server/protocol/interface/location_link.rb +7 -4
  93. data/lib/language_server/protocol/interface/notification_message.rb +2 -1
  94. data/lib/language_server/protocol/interface/partial_result_params.rb +34 -0
  95. data/lib/language_server/protocol/interface/prepare_rename_params.rb +26 -0
  96. data/lib/language_server/protocol/interface/progress_params.rb +42 -0
  97. data/lib/language_server/protocol/interface/publish_diagnostics_client_capabilities.rb +53 -0
  98. data/lib/language_server/protocol/interface/publish_diagnostics_params.rb +10 -1
  99. data/lib/language_server/protocol/interface/reference_client_capabilities.rb +33 -0
  100. data/lib/language_server/protocol/interface/reference_options.rb +25 -0
  101. data/lib/language_server/protocol/interface/reference_params.rb +3 -2
  102. data/lib/language_server/protocol/interface/reference_registration_options.rb +25 -0
  103. data/lib/language_server/protocol/interface/rename_client_capabilities.rb +43 -0
  104. data/lib/language_server/protocol/interface/rename_options.rb +3 -5
  105. data/lib/language_server/protocol/interface/rename_params.rb +3 -20
  106. data/lib/language_server/protocol/interface/rename_registration_options.rb +3 -10
  107. data/lib/language_server/protocol/interface/request_message.rb +2 -1
  108. data/lib/language_server/protocol/interface/response_error.rb +2 -2
  109. data/lib/language_server/protocol/interface/response_message.rb +5 -4
  110. data/lib/language_server/protocol/interface/save_options.rb +0 -3
  111. data/lib/language_server/protocol/interface/selection_range.rb +42 -0
  112. data/lib/language_server/protocol/interface/selection_range_client_capabilities.rb +35 -0
  113. data/lib/language_server/protocol/interface/selection_range_options.rb +25 -0
  114. data/lib/language_server/protocol/interface/selection_range_params.rb +43 -0
  115. data/lib/language_server/protocol/interface/selection_range_registration_options.rb +25 -0
  116. data/lib/language_server/protocol/interface/server_capabilities.rb +66 -56
  117. data/lib/language_server/protocol/interface/signature_help.rb +8 -5
  118. data/lib/language_server/protocol/interface/signature_help_client_capabilities.rb +55 -0
  119. data/lib/language_server/protocol/interface/signature_help_context.rb +71 -0
  120. data/lib/language_server/protocol/interface/signature_help_options.rb +15 -5
  121. data/lib/language_server/protocol/interface/signature_help_params.rb +35 -0
  122. data/lib/language_server/protocol/interface/signature_help_registration_options.rb +4 -11
  123. data/lib/language_server/protocol/interface/symbol_information.rb +1 -1
  124. data/lib/language_server/protocol/interface/text_document_change_registration_options.rb +2 -1
  125. data/lib/language_server/protocol/interface/text_document_client_capabilities.rb +87 -87
  126. data/lib/language_server/protocol/interface/text_document_content_change_event.rb +8 -4
  127. data/lib/language_server/protocol/interface/text_document_registration_options.rb +3 -0
  128. data/lib/language_server/protocol/interface/text_document_save_registration_options.rb +1 -0
  129. data/lib/language_server/protocol/interface/text_document_sync_client_capabilities.rb +62 -0
  130. data/lib/language_server/protocol/interface/text_document_sync_options.rb +14 -6
  131. data/lib/language_server/protocol/interface/type_definition_client_capabilities.rb +44 -0
  132. data/lib/language_server/protocol/interface/type_definition_options.rb +25 -0
  133. data/lib/language_server/protocol/interface/type_definition_params.rb +25 -0
  134. data/lib/language_server/protocol/interface/type_definition_registration_options.rb +25 -0
  135. data/lib/language_server/protocol/interface/versioned_text_document_identifier.rb +2 -1
  136. data/lib/language_server/protocol/interface/work_done_progress_begin.rb +80 -0
  137. data/lib/language_server/protocol/interface/work_done_progress_cancel_params.rb +33 -0
  138. data/lib/language_server/protocol/interface/work_done_progress_create_params.rb +33 -0
  139. data/lib/language_server/protocol/interface/work_done_progress_end.rb +40 -0
  140. data/lib/language_server/protocol/interface/work_done_progress_options.rb +30 -0
  141. data/lib/language_server/protocol/interface/work_done_progress_params.rb +33 -0
  142. data/lib/language_server/protocol/interface/work_done_progress_report.rb +70 -0
  143. data/lib/language_server/protocol/interface/workspace_edit.rb +1 -1
  144. data/lib/language_server/protocol/interface/workspace_edit_client_capabilities.rb +53 -0
  145. data/lib/language_server/protocol/interface/workspace_folder.rb +2 -2
  146. data/lib/language_server/protocol/interface/workspace_folders_server_capabilities.rb +48 -0
  147. data/lib/language_server/protocol/interface/workspace_symbol_client_capabilities.rb +42 -0
  148. data/lib/language_server/protocol/interface/workspace_symbol_options.rb +25 -0
  149. data/lib/language_server/protocol/interface/workspace_symbol_params.rb +5 -3
  150. data/lib/language_server/protocol/interface/workspace_symbol_registration_options.rb +25 -0
  151. data/lib/language_server/protocol/transport.rb +1 -0
  152. data/lib/language_server/protocol/transport/io.rb +2 -0
  153. data/lib/language_server/protocol/transport/io/reader.rb +47 -0
  154. data/lib/language_server/protocol/transport/io/writer.rb +34 -0
  155. data/lib/language_server/protocol/transport/stdio/reader.rb +3 -29
  156. data/lib/language_server/protocol/transport/stdio/writer.rb +3 -18
  157. data/lib/language_server/protocol/version.rb +1 -1
  158. metadata +92 -31
  159. data/.gitignore +0 -10
  160. data/.travis.yml +0 -5
  161. data/CHANGELOG.md +0 -21
  162. data/CODE_OF_CONDUCT.md +0 -74
  163. data/Dockerfile-node.development +0 -6
  164. data/Dockerfile.development +0 -24
  165. data/Gemfile +0 -6
  166. data/Rakefile +0 -10
  167. data/bin/console +0 -14
  168. data/bin/generate_files +0 -5
  169. data/bin/m +0 -17
  170. data/bin/setup +0 -6
  171. data/circle.yml +0 -46
  172. data/docker-compose.ci.yml +0 -18
  173. data/docker-compose.override.yml +0 -19
  174. data/docker-compose.yml +0 -45
  175. data/language_server-protocol.gemspec +0 -31
  176. data/lib/language_server/protocol/interface/workspace_client_capabilities.rb +0 -104
  177. data/package.json +0 -10
  178. data/scripts/generateFiles.ts +0 -320
  179. data/yarn.lock +0 -293
@@ -1,6 +0,0 @@
1
- FROM node:6-alpine
2
-
3
- RUN mkdir /app /vendor && chown node:node /app /vendor
4
-
5
- USER node
6
- WORKDIR /app
@@ -1,24 +0,0 @@
1
- ARG RUBY_VERSION
2
- FROM ruby:$RUBY_VERSION
3
-
4
- RUN apt-get update && apt-get install less -y
5
- RUN groupadd --gid 1000 ruby && useradd --uid 1000 --gid ruby --shell /bin/bash --create-home ruby
6
- RUN mkdir /app /vendor && chown ruby:ruby /app /vendor
7
-
8
- ENV LANG=C.UTF-8 \
9
- BUNDLE_PATH=/vendor/bundle/$RUBY_VERSION \
10
- BUNDLE_JOBS=4
11
-
12
- ENV ENTRYKIT_VERSION 0.4.0
13
-
14
- RUN wget https://github.com/progrium/entrykit/releases/download/v${ENTRYKIT_VERSION}/entrykit_${ENTRYKIT_VERSION}_Linux_x86_64.tgz \
15
- && tar -xvzf entrykit_${ENTRYKIT_VERSION}_Linux_x86_64.tgz \
16
- && rm entrykit_${ENTRYKIT_VERSION}_Linux_x86_64.tgz \
17
- && mv entrykit /bin/entrykit \
18
- && chmod +x /bin/entrykit \
19
- && entrykit --symlink
20
-
21
- USER ruby
22
- WORKDIR /app
23
-
24
- ENTRYPOINT ["prehook", "bin/setup", "--"]
data/Gemfile DELETED
@@ -1,6 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
-
5
- # Specify your gem's dependencies in language_server-protocol.gemspec
6
- gemspec
data/Rakefile DELETED
@@ -1,10 +0,0 @@
1
- require "bundler/gem_tasks"
2
- require "rake/testtask"
3
-
4
- Rake::TestTask.new(:test) do |t|
5
- t.libs << "test"
6
- t.libs << "lib"
7
- t.test_files = FileList["test/**/*_test.rb"]
8
- end
9
-
10
- task :default => :test
data/bin/console DELETED
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "bundler/setup"
4
- require "language_server/protocol"
5
-
6
- # You can add fixtures and/or initialization code here to make experimenting
7
- # with your gem easier. You can also use a different console, if you like.
8
-
9
- # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
11
- # Pry.start
12
-
13
- require "irb"
14
- IRB.start(__FILE__)
data/bin/generate_files DELETED
@@ -1,5 +0,0 @@
1
- #!/usr/bin/env sh
2
-
3
- set -ex
4
- yarn install
5
- yarn run -s -- ts-node --compilerOptions '{"target":"es6"}' scripts/generateFiles.ts
data/bin/m DELETED
@@ -1,17 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
- #
4
- # This file was generated by Bundler.
5
- #
6
- # The application 'm' is installed as part of a gem, and
7
- # this file is here to facilitate running it.
8
- #
9
-
10
- require "pathname"
11
- ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
12
- Pathname.new(__FILE__).realpath)
13
-
14
- require "rubygems"
15
- require "bundler/setup"
16
-
17
- load Gem.bin_path("m", "m")
data/bin/setup DELETED
@@ -1,6 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
- set -vx
5
-
6
- bundle check || bundle install
data/circle.yml DELETED
@@ -1,46 +0,0 @@
1
- version: 2.0
2
- references:
3
- test: &test
4
- docker:
5
- - image: tmaier/docker-compose
6
- environment:
7
- COMPOSE_FILE: docker-compose.yml:docker-compose.ci.yml
8
- steps:
9
- - checkout
10
- - setup_remote_docker
11
- - run:
12
- name: setup
13
- command: |
14
- set -x
15
- docker info
16
- docker volume create project
17
- docker create -v project:/app --name project busybox chown -R 1000:1000 /app
18
- docker cp . project:/app
19
- docker start project
20
- docker-compose build $CIRCLE_JOB
21
- - run:
22
- name: test
23
- command: |
24
- docker-compose run $CIRCLE_JOB bundle exec rake test
25
-
26
- jobs:
27
- ruby-2-6:
28
- <<: *test
29
- ruby-2-5:
30
- <<: *test
31
- ruby-2-4:
32
- <<: *test
33
- ruby-2-3:
34
- <<: *test
35
- ruby-2-2:
36
- <<: *test
37
-
38
- workflows:
39
- version: 2
40
- test_and_buld:
41
- jobs:
42
- - ruby-2-6
43
- - ruby-2-5
44
- - ruby-2-4
45
- - ruby-2-3
46
- - ruby-2-2
@@ -1,18 +0,0 @@
1
- version: "3.0"
2
- services:
3
- ruby-2-6: &latest
4
- volumes:
5
- - project:/app
6
- ruby-2-5:
7
- <<: *latest
8
- ruby-2-4:
9
- <<: *latest
10
- ruby-2-3:
11
- <<: *latest
12
- ruby-2-2:
13
- <<: *latest
14
- node:
15
- <<: *latest
16
- volumes:
17
- project:
18
- external: true
@@ -1,19 +0,0 @@
1
- version: "3.0"
2
- services:
3
- ruby-2-6: &latest
4
- volumes:
5
- - .:/app:cached
6
- - $HOME/.gitconfig:/home/ruby/.gitconfig:ro
7
- - $HOME/.ssh:/home/ruby/.ssh:ro
8
- - $HOME/.gem:/home/ruby/.gem
9
- ruby-2-5:
10
- <<: *latest
11
- ruby-2-4:
12
- <<: *latest
13
- ruby-2-3:
14
- <<: *latest
15
- ruby-2-2:
16
- <<: *latest
17
- node:
18
- volumes:
19
- - .:/app:cached
data/docker-compose.yml DELETED
@@ -1,45 +0,0 @@
1
- version: "3.0"
2
- services:
3
- ruby-2-6: &latest
4
- build: &build
5
- context: .
6
- dockerfile: Dockerfile.development
7
- args:
8
- RUBY_VERSION: 2.6.0
9
- volumes:
10
- - vendor:/vendor
11
- - home:/home/ruby
12
- ruby-2-5:
13
- <<: *latest
14
- build:
15
- <<: *build
16
- args:
17
- RUBY_VERSION: 2.5.3
18
- ruby-2-4:
19
- <<: *latest
20
- build:
21
- <<: *build
22
- args:
23
- RUBY_VERSION: 2.4.5
24
- ruby-2-3:
25
- <<: *latest
26
- build:
27
- <<: *build
28
- args:
29
- RUBY_VERSION: 2.3.8
30
- ruby-2-2:
31
- <<: *latest
32
- build:
33
- <<: *build
34
- args:
35
- RUBY_VERSION: 2.2.10
36
- node:
37
- build:
38
- context: .
39
- dockerfile: Dockerfile-node.development
40
- volumes:
41
- - vendor:/vendor
42
- - home:/home/node
43
- volumes:
44
- vendor:
45
- home:
@@ -1,31 +0,0 @@
1
- # coding: utf-8
2
- lib = File.expand_path("../lib", __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require "language_server/protocol/version"
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = "language_server-protocol"
8
- spec.version = LanguageServer::Protocol::VERSION
9
- spec.authors = ["Fumiaki MATSUSHIMA"]
10
- spec.email = ["mtsmfm@gmail.com"]
11
-
12
- spec.summary = %q{A Language Server Protocol SDK}
13
- spec.description = %q{A Language Server Protocol SDK}
14
- spec.homepage = "https://github.com/mtsmfm/language_server-protocol-ruby"
15
- spec.license = "MIT"
16
-
17
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
18
- f.match(%r{^(test|spec|features)/})
19
- end
20
- spec.bindir = "exe"
21
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
- spec.require_paths = ["lib"]
23
-
24
- spec.add_development_dependency "bundler", "~> 1.15"
25
- spec.add_development_dependency "rake", "~> 10.0"
26
- spec.add_development_dependency "minitest", "~> 5.0"
27
- spec.add_development_dependency "pry-byebug"
28
- spec.add_development_dependency "minitest-power_assert"
29
- spec.add_development_dependency "m"
30
- spec.add_development_dependency "activesupport"
31
- end
@@ -1,104 +0,0 @@
1
- module LanguageServer
2
- module Protocol
3
- module Interface
4
- #
5
- # Workspace specific client capabilities.
6
- #
7
- class WorkspaceClientCapabilities
8
- def initialize(apply_edit: nil, workspace_edit: nil, did_change_configuration: nil, did_change_watched_files: nil, symbol: nil, execute_command: nil, workspace_folders: nil, configuration: nil)
9
- @attributes = {}
10
-
11
- @attributes[:applyEdit] = apply_edit if apply_edit
12
- @attributes[:workspaceEdit] = workspace_edit if workspace_edit
13
- @attributes[:didChangeConfiguration] = did_change_configuration if did_change_configuration
14
- @attributes[:didChangeWatchedFiles] = did_change_watched_files if did_change_watched_files
15
- @attributes[:symbol] = symbol if symbol
16
- @attributes[:executeCommand] = execute_command if execute_command
17
- @attributes[:workspaceFolders] = workspace_folders if workspace_folders
18
- @attributes[:configuration] = configuration if configuration
19
-
20
- @attributes.freeze
21
- end
22
-
23
- #
24
- # The client supports applying batch edits to the workspace by supporting
25
- # the request 'workspace/applyEdit'
26
- #
27
- # @return [boolean]
28
- def apply_edit
29
- attributes.fetch(:applyEdit)
30
- end
31
-
32
- #
33
- # Capabilities specific to `WorkspaceEdit`s
34
- #
35
- # @return [{ documentChanges?: boolean; resourceOperations?: ResourceOperationKind[]; failureHandling?: Fail...]
36
- def workspace_edit
37
- attributes.fetch(:workspaceEdit)
38
- end
39
-
40
- #
41
- # Capabilities specific to the `workspace/didChangeConfiguration` notification.
42
- #
43
- # @return [{ dynamicRegistration?: boolean; }]
44
- def did_change_configuration
45
- attributes.fetch(:didChangeConfiguration)
46
- end
47
-
48
- #
49
- # Capabilities specific to the `workspace/didChangeWatchedFiles` notification.
50
- #
51
- # @return [{ dynamicRegistration?: boolean; }]
52
- def did_change_watched_files
53
- attributes.fetch(:didChangeWatchedFiles)
54
- end
55
-
56
- #
57
- # Capabilities specific to the `workspace/symbol` request.
58
- #
59
- # @return [{ dynamicRegistration?: boolean; symbolKind?: { valueSet?: any[]; }; }]
60
- def symbol
61
- attributes.fetch(:symbol)
62
- end
63
-
64
- #
65
- # Capabilities specific to the `workspace/executeCommand` request.
66
- #
67
- # @return [{ dynamicRegistration?: boolean; }]
68
- def execute_command
69
- attributes.fetch(:executeCommand)
70
- end
71
-
72
- #
73
- # The client has support for workspace folders.
74
- #
75
- # Since 3.6.0
76
- #
77
- # @return [boolean]
78
- def workspace_folders
79
- attributes.fetch(:workspaceFolders)
80
- end
81
-
82
- #
83
- # The client supports `workspace/configuration` requests.
84
- #
85
- # Since 3.6.0
86
- #
87
- # @return [boolean]
88
- def configuration
89
- attributes.fetch(:configuration)
90
- end
91
-
92
- attr_reader :attributes
93
-
94
- def to_hash
95
- attributes
96
- end
97
-
98
- def to_json(*args)
99
- to_hash.to_json(*args)
100
- end
101
- end
102
- end
103
- end
104
- end
data/package.json DELETED
@@ -1,10 +0,0 @@
1
- {
2
- "dependencies": {
3
- "@types/es6-promise": "^0.0.32",
4
- "@types/node": "^7.0.18",
5
- "handlebars": "^4.0.8",
6
- "isomorphic-fetch": "^2.2.1",
7
- "ts-node": "^3.0.4",
8
- "typescript": "^2.3.2"
9
- }
10
- }
@@ -1,320 +0,0 @@
1
- import * as ts from "typescript";
2
- import * as fs from "fs";
3
- import * as path from "path";
4
- import * as fetch from "isomorphic-fetch";
5
-
6
- const lspVersion = "c0c516735fb9eea08ac0151333b5380d70525961";
7
- const rootDir = path.normalize(path.join(__dirname, ".."));
8
- const tempDir = path.join(rootDir, "tmp");
9
- const protocolMdPath = path.join(tempDir, lspVersion, "protocol.md");
10
-
11
- const createFile = (filePath, content) => {
12
- const dir = path.dirname(path.normalize(filePath));
13
-
14
- dir.split(/(?!^)\//).forEach((_, index, all) => {
15
- const dir = all.slice(0, index + 1).join("/");
16
-
17
- if (!fs.existsSync(dir)) {
18
- fs.mkdirSync(dir);
19
- }
20
- });
21
-
22
- fs.writeFileSync(filePath, content);
23
- };
24
-
25
- const extractTypeScriptSource = content => {
26
- const regEx = /^```typescript\r\n([^]*?)^```\r\n/gm;
27
- let match;
28
- let result = "";
29
-
30
- while ((match = regEx.exec(content)) !== null) {
31
- result = result.concat(match[1]);
32
- }
33
-
34
- return result;
35
- };
36
-
37
- const extractDefinitions = content => {
38
- const fileName = path.join(tempDir, "protocol.ts");
39
- createFile(fileName, content);
40
- const program = ts.createProgram([fileName], {});
41
- const checker = program.getTypeChecker();
42
-
43
- const output = [];
44
-
45
- const serialize = member => {
46
- const symbol = checker.getSymbolAtLocation(member.name);
47
- const type = checker.getTypeOfSymbolAtLocation(
48
- symbol,
49
- symbol.valueDeclaration
50
- );
51
- const types =
52
- member.kind == ts.SyntaxKind.UnionType
53
- ? (<ts.UnionTypeNode>(<ts.PropertySignature>member).type).types
54
- : [];
55
-
56
- return {
57
- name: symbol.getName(),
58
- documentation: ts.displayPartsToString(symbol.getDocumentationComment()),
59
- type: checker.typeToString(type),
60
- optional: !!member.questionToken,
61
- nullable: (<ts.NodeArray<ts.TypeNode>>types).some(
62
- t => t.kind == ts.SyntaxKind.NullKeyword
63
- ),
64
- value: symbol.valueDeclaration
65
- ? symbol.valueDeclaration
66
- .getChildAt(symbol.valueDeclaration.getChildCount() - 1)
67
- .getText()
68
- : null
69
- };
70
- };
71
-
72
- const handleInterface = (node: ts.InterfaceDeclaration) => {
73
- const members = node.members
74
- .filter(member => member.name)
75
- .map(member => serialize(member));
76
- const parentName =
77
- node.heritageClauses && node.heritageClauses[0].getLastToken().getText();
78
- const parent = output.find(
79
- i => i.interface && i.interface.name === parentName
80
- );
81
-
82
- output.push({
83
- interface: serialize(node),
84
- parent: parent,
85
- allMembers: ((parent && parent.allMembers) || []).concat(members),
86
- members
87
- });
88
- };
89
-
90
- const handleModule = (node: ts.ModuleDeclaration) => {
91
- const members = [];
92
-
93
- ts.forEachChild(node.body, node => {
94
- members.push(
95
- serialize((<ts.VariableStatement>node).declarationList.declarations[0])
96
- );
97
- });
98
-
99
- output.push({
100
- module: serialize(node),
101
- members
102
- });
103
- };
104
-
105
- const visit = node => {
106
- switch (node.kind) {
107
- case ts.SyntaxKind.InterfaceDeclaration:
108
- handleInterface(node);
109
- break;
110
-
111
- case ts.SyntaxKind.ModuleDeclaration:
112
- handleModule(node);
113
- break;
114
- }
115
- };
116
-
117
- ts.forEachChild(program.getSourceFile(fileName), visit);
118
-
119
- return output;
120
- };
121
-
122
- import Handlebars from "handlebars";
123
- const snake = s =>
124
- s
125
- .replace(/^[A-Z]/, s => s.toLowerCase())
126
- .replace(/[A-Z]/g, s => `_${s.toLowerCase()}`);
127
-
128
- Handlebars.registerHelper("params", members => {
129
- return members
130
- .map(
131
- member =>
132
- `${snake(member.name)}:${
133
- member.optional || member.nullable ? " nil" : ""
134
- }`
135
- )
136
- .join(", ");
137
- });
138
- Handlebars.registerHelper("snake", snake);
139
- Handlebars.registerHelper("comment", (s, options) => {
140
- const indent = Array(options.hash.indent + 1).join(" ");
141
- return s
142
- .split("\n")
143
- .map(s => s.trim())
144
- .map(s => `${indent}#${s.length == 0 ? "" : ` ${s}`}`)
145
- .join("\n");
146
- });
147
- Handlebars.registerHelper("local_var", s => {
148
- const rubyKeywords = ["end", "retry"];
149
- const snaked = snake(s);
150
-
151
- if (rubyKeywords.some(k => k == s)) {
152
- return `binding.local_variable_get(:${snaked})`;
153
- } else {
154
- return snake(s);
155
- }
156
- });
157
- Handlebars.registerHelper("const", s => {
158
- return snake(s).toUpperCase();
159
- });
160
-
161
- (async () => {
162
- if (!fs.existsSync(protocolMdPath)) {
163
- const res = await fetch(
164
- `https://github.com/Microsoft/language-server-protocol/raw/${lspVersion}/specification.md`
165
- );
166
- createFile(protocolMdPath, await res.text());
167
- }
168
-
169
- const md = fs.readFileSync(protocolMdPath).toString();
170
- const typeScriptSource = extractTypeScriptSource(md);
171
-
172
- const definitions = extractDefinitions(typeScriptSource);
173
- const interfaces = definitions.filter(d => d.interface);
174
- const modules = definitions.filter(d => d.module);
175
-
176
- interfaces.forEach(definition => {
177
- createFile(
178
- path.join(
179
- rootDir,
180
- "lib",
181
- "language_server",
182
- "protocol",
183
- "interface",
184
- `${snake(definition.interface.name)}.rb`
185
- ),
186
- Handlebars.compile(
187
- `
188
- module LanguageServer
189
- module Protocol
190
- module Interface
191
- {{#if definition.interface.documentation}}
192
- #
193
- {{comment definition.interface.documentation indent=6}}
194
- #
195
- {{/if}}
196
- class {{definition.interface.name}}{{#if definition.parent}} < {{definition.parent.interface.name}}{{/if}}
197
- def initialize({{params definition.allMembers}})
198
- @attributes = {}
199
-
200
- {{#each definition.members}}
201
- @attributes[:{{name}}] = {{local_var name}}{{#if optional}} if {{local_var name}}{{/if}}
202
- {{/each}}
203
-
204
- @attributes.freeze
205
- end
206
- {{#each definition.members}}
207
-
208
- {{#if documentation}}
209
- #
210
- {{comment documentation indent=8}}
211
- #
212
- {{/if}}
213
- # @return [{{type}}{{#if nullable}}, nil{{/if}}]
214
- def {{snake name}}
215
- attributes.fetch(:{{name}})
216
- end
217
- {{/each}}
218
-
219
- attr_reader :attributes
220
-
221
- def to_hash
222
- attributes
223
- end
224
-
225
- def to_json(*args)
226
- to_hash.to_json(*args)
227
- end
228
- end
229
- end
230
- end
231
- end
232
- `.slice(1),
233
- { noEscape: true }
234
- )({ definition })
235
- );
236
- });
237
-
238
- modules.forEach(definition => {
239
- createFile(
240
- path.join(
241
- rootDir,
242
- "lib",
243
- "language_server",
244
- "protocol",
245
- "constant",
246
- `${snake(definition.module.name)}.rb`
247
- ),
248
- Handlebars.compile(
249
- `
250
- module LanguageServer
251
- module Protocol
252
- module Constant
253
- {{#if definition.module.documentation}}
254
- #
255
- {{comment definition.module.documentation indent=6}}
256
- #
257
- {{/if}}
258
- module {{definition.module.name}}
259
- {{#each definition.members}}
260
- {{#if documentation}}
261
- #
262
- {{comment documentation indent=8}}
263
- #
264
- {{/if}}
265
- {{const name}} = {{value}}
266
- {{/each}}
267
- end
268
- end
269
- end
270
- end
271
- `.slice(1),
272
- { noEscape: true }
273
- )({ definition })
274
- );
275
- });
276
-
277
- createFile(
278
- path.join(rootDir, "lib", "language_server", "protocol", "interface.rb"),
279
- Handlebars.compile(
280
- `
281
- module LanguageServer
282
- module Protocol
283
- module Interface
284
- {{#each names}}
285
- autoload :{{this}}, "language_server/protocol/interface/{{snake this}}"
286
- {{/each}}
287
-
288
- {{#each names}}
289
- require "language_server/protocol/interface/{{snake this}}"
290
- {{/each}}
291
- end
292
- end
293
- end
294
- `.slice(1),
295
- { noEscape: true }
296
- )({ names: interfaces.map(i => i.interface.name).sort() })
297
- );
298
-
299
- createFile(
300
- path.join(rootDir, "lib", "language_server", "protocol", "constant.rb"),
301
- Handlebars.compile(
302
- `
303
- module LanguageServer
304
- module Protocol
305
- module Constant
306
- {{#each names}}
307
- autoload :{{this}}, "language_server/protocol/constant/{{snake this}}"
308
- {{/each}}
309
-
310
- {{#each names}}
311
- require "language_server/protocol/constant/{{snake this}}"
312
- {{/each}}
313
- end
314
- end
315
- end
316
- `.slice(1),
317
- { noEscape: true }
318
- )({ names: modules.map(i => i.module.name).sort() })
319
- );
320
- })();