language_server-protocol 3.14.0.0 → 3.15.0.2
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.
- checksums.yaml +4 -4
- data/README.md +9 -1
- data/lib/language_server/protocol/constant.rb +8 -0
- data/lib/language_server/protocol/constant/code_action_kind.rb +12 -8
- data/lib/language_server/protocol/constant/completion_item_tag.rb +16 -0
- data/lib/language_server/protocol/constant/diagnostic_tag.rb +24 -0
- data/lib/language_server/protocol/constant/signature_help_trigger_kind.rb +23 -0
- data/lib/language_server/protocol/constant/text_document_sync_kind.rb +1 -0
- data/lib/language_server/protocol/interface.rb +158 -6
- data/lib/language_server/protocol/interface/apply_workspace_edit_response.rb +13 -1
- data/lib/language_server/protocol/interface/client_capabilities.rb +11 -2
- data/lib/language_server/protocol/interface/code_action.rb +14 -1
- data/lib/language_server/protocol/interface/code_action_client_capabilities.rb +52 -0
- data/lib/language_server/protocol/interface/code_action_context.rb +5 -1
- data/lib/language_server/protocol/interface/code_action_options.rb +3 -5
- data/lib/language_server/protocol/interface/code_action_params.rb +3 -2
- data/lib/language_server/protocol/interface/code_action_registration_options.rb +3 -1
- data/lib/language_server/protocol/interface/code_lens_client_capabilities.rb +33 -0
- data/lib/language_server/protocol/interface/code_lens_options.rb +3 -5
- data/lib/language_server/protocol/interface/code_lens_params.rb +3 -2
- data/lib/language_server/protocol/interface/code_lens_registration_options.rb +3 -10
- data/lib/language_server/protocol/interface/color_presentation_params.rb +3 -2
- data/lib/language_server/protocol/interface/completion_client_capabilities.rb +59 -0
- data/lib/language_server/protocol/interface/completion_item.rb +16 -5
- data/lib/language_server/protocol/interface/completion_options.rb +33 -11
- data/lib/language_server/protocol/interface/completion_params.rb +3 -2
- data/lib/language_server/protocol/interface/completion_registration_options.rb +4 -26
- data/lib/language_server/protocol/interface/declaration_client_capabilities.rb +44 -0
- data/lib/language_server/protocol/interface/declaration_options.rb +25 -0
- data/lib/language_server/protocol/interface/declaration_params.rb +25 -0
- data/lib/language_server/protocol/interface/{folding_range_provider_options.rb → declaration_registration_options.rb} +3 -5
- data/lib/language_server/protocol/interface/definition_client_capabilities.rb +42 -0
- data/lib/language_server/protocol/interface/definition_options.rb +25 -0
- data/lib/language_server/protocol/interface/definition_params.rb +25 -0
- data/lib/language_server/protocol/interface/definition_registration_options.rb +25 -0
- data/lib/language_server/protocol/interface/diagnostic.rb +11 -2
- data/lib/language_server/protocol/interface/diagnostic_related_information.rb +1 -1
- data/lib/language_server/protocol/interface/did_change_configuration_client_capabilities.rb +33 -0
- data/lib/language_server/protocol/interface/did_change_text_document_params.rb +10 -2
- data/lib/language_server/protocol/interface/did_change_watched_files_client_capabilities.rb +35 -0
- data/lib/language_server/protocol/interface/did_change_watched_files_registration_options.rb +1 -1
- data/lib/language_server/protocol/interface/document_color_client_capabilities.rb +33 -0
- data/lib/language_server/protocol/interface/document_color_options.rb +25 -0
- data/lib/language_server/protocol/interface/document_color_params.rb +34 -0
- data/lib/language_server/protocol/interface/document_color_registration_options.rb +25 -0
- data/lib/language_server/protocol/interface/document_formatting_client_capabilities.rb +33 -0
- data/lib/language_server/protocol/interface/document_formatting_options.rb +25 -0
- data/lib/language_server/protocol/interface/document_formatting_params.rb +3 -2
- data/lib/language_server/protocol/interface/document_formatting_registration_options.rb +25 -0
- data/lib/language_server/protocol/interface/document_highlight_client_capabilities.rb +33 -0
- data/lib/language_server/protocol/interface/document_highlight_options.rb +25 -0
- data/lib/language_server/protocol/interface/document_highlight_params.rb +25 -0
- data/lib/language_server/protocol/interface/document_highlight_registration_options.rb +25 -0
- data/lib/language_server/protocol/interface/document_link.rb +14 -1
- data/lib/language_server/protocol/interface/document_link_client_capabilities.rb +42 -0
- data/lib/language_server/protocol/interface/document_link_options.rb +3 -5
- data/lib/language_server/protocol/interface/document_link_params.rb +3 -2
- data/lib/language_server/protocol/interface/document_link_registration_options.rb +3 -10
- data/lib/language_server/protocol/interface/document_on_type_formatting_client_capabilities.rb +33 -0
- data/lib/language_server/protocol/interface/document_on_type_formatting_options.rb +0 -3
- data/lib/language_server/protocol/interface/document_on_type_formatting_params.rb +1 -17
- data/lib/language_server/protocol/interface/document_on_type_formatting_registration_options.rb +2 -18
- data/lib/language_server/protocol/interface/document_range_formatting_client_capabilities.rb +33 -0
- data/lib/language_server/protocol/interface/document_range_formatting_options.rb +25 -0
- data/lib/language_server/protocol/interface/document_range_formatting_params.rb +3 -2
- data/lib/language_server/protocol/interface/document_range_formatting_registration_options.rb +25 -0
- data/lib/language_server/protocol/interface/document_symbol.rb +96 -0
- data/lib/language_server/protocol/interface/document_symbol_client_capabilities.rb +51 -0
- data/lib/language_server/protocol/interface/document_symbol_options.rb +25 -0
- data/lib/language_server/protocol/interface/document_symbol_params.rb +3 -2
- data/lib/language_server/protocol/interface/document_symbol_registration_options.rb +25 -0
- data/lib/language_server/protocol/interface/execute_command_client_capabilities.rb +33 -0
- data/lib/language_server/protocol/interface/execute_command_options.rb +3 -5
- data/lib/language_server/protocol/interface/execute_command_params.rb +3 -2
- data/lib/language_server/protocol/interface/execute_command_registration_options.rb +3 -10
- data/lib/language_server/protocol/interface/folding_range.rb +1 -1
- data/lib/language_server/protocol/interface/folding_range_client_capabilities.rb +55 -0
- data/lib/language_server/protocol/interface/folding_range_options.rb +25 -0
- data/lib/language_server/protocol/interface/folding_range_params.rb +3 -2
- data/lib/language_server/protocol/interface/{color_provider_options.rb → folding_range_registration_options.rb} +3 -5
- data/lib/language_server/protocol/interface/formatting_options.rb +28 -1
- data/lib/language_server/protocol/interface/hover_client_capabilities.rb +43 -0
- data/lib/language_server/protocol/interface/hover_options.rb +25 -0
- data/lib/language_server/protocol/interface/hover_params.rb +25 -0
- data/lib/language_server/protocol/interface/hover_registration_options.rb +25 -0
- data/lib/language_server/protocol/interface/implementation_client_capabilities.rb +44 -0
- data/lib/language_server/protocol/interface/implementation_options.rb +25 -0
- data/lib/language_server/protocol/interface/implementation_params.rb +25 -0
- data/lib/language_server/protocol/interface/implementation_registration_options.rb +25 -0
- data/lib/language_server/protocol/interface/initialize_params.rb +12 -4
- data/lib/language_server/protocol/interface/initialize_result.rb +10 -1
- data/lib/language_server/protocol/interface/location_link.rb +7 -4
- data/lib/language_server/protocol/interface/notification_message.rb +2 -1
- data/lib/language_server/protocol/interface/partial_result_params.rb +34 -0
- data/lib/language_server/protocol/interface/prepare_rename_params.rb +26 -0
- data/lib/language_server/protocol/interface/progress_params.rb +42 -0
- data/lib/language_server/protocol/interface/publish_diagnostics_client_capabilities.rb +53 -0
- data/lib/language_server/protocol/interface/publish_diagnostics_params.rb +10 -1
- data/lib/language_server/protocol/interface/reference_client_capabilities.rb +33 -0
- data/lib/language_server/protocol/interface/reference_options.rb +25 -0
- data/lib/language_server/protocol/interface/reference_params.rb +3 -2
- data/lib/language_server/protocol/interface/reference_registration_options.rb +25 -0
- data/lib/language_server/protocol/interface/rename_client_capabilities.rb +43 -0
- data/lib/language_server/protocol/interface/rename_options.rb +3 -5
- data/lib/language_server/protocol/interface/rename_params.rb +3 -20
- data/lib/language_server/protocol/interface/rename_registration_options.rb +3 -10
- data/lib/language_server/protocol/interface/request_message.rb +2 -1
- data/lib/language_server/protocol/interface/response_error.rb +2 -2
- data/lib/language_server/protocol/interface/response_message.rb +5 -4
- data/lib/language_server/protocol/interface/save_options.rb +0 -3
- data/lib/language_server/protocol/interface/selection_range.rb +42 -0
- data/lib/language_server/protocol/interface/selection_range_client_capabilities.rb +35 -0
- data/lib/language_server/protocol/interface/selection_range_options.rb +25 -0
- data/lib/language_server/protocol/interface/selection_range_params.rb +43 -0
- data/lib/language_server/protocol/interface/selection_range_registration_options.rb +25 -0
- data/lib/language_server/protocol/interface/server_capabilities.rb +66 -56
- data/lib/language_server/protocol/interface/signature_help.rb +8 -5
- data/lib/language_server/protocol/interface/signature_help_client_capabilities.rb +55 -0
- data/lib/language_server/protocol/interface/signature_help_context.rb +71 -0
- data/lib/language_server/protocol/interface/signature_help_options.rb +15 -5
- data/lib/language_server/protocol/interface/signature_help_params.rb +35 -0
- data/lib/language_server/protocol/interface/signature_help_registration_options.rb +4 -11
- data/lib/language_server/protocol/interface/symbol_information.rb +1 -1
- data/lib/language_server/protocol/interface/text_document_change_registration_options.rb +2 -1
- data/lib/language_server/protocol/interface/text_document_client_capabilities.rb +87 -87
- data/lib/language_server/protocol/interface/text_document_content_change_event.rb +8 -4
- data/lib/language_server/protocol/interface/text_document_registration_options.rb +3 -0
- data/lib/language_server/protocol/interface/text_document_save_registration_options.rb +1 -0
- data/lib/language_server/protocol/interface/text_document_sync_client_capabilities.rb +62 -0
- data/lib/language_server/protocol/interface/text_document_sync_options.rb +14 -6
- data/lib/language_server/protocol/interface/type_definition_client_capabilities.rb +44 -0
- data/lib/language_server/protocol/interface/type_definition_options.rb +25 -0
- data/lib/language_server/protocol/interface/type_definition_params.rb +25 -0
- data/lib/language_server/protocol/interface/type_definition_registration_options.rb +25 -0
- data/lib/language_server/protocol/interface/versioned_text_document_identifier.rb +2 -1
- data/lib/language_server/protocol/interface/work_done_progress_begin.rb +80 -0
- data/lib/language_server/protocol/interface/work_done_progress_cancel_params.rb +33 -0
- data/lib/language_server/protocol/interface/work_done_progress_create_params.rb +33 -0
- data/lib/language_server/protocol/interface/work_done_progress_end.rb +40 -0
- data/lib/language_server/protocol/interface/work_done_progress_options.rb +30 -0
- data/lib/language_server/protocol/interface/work_done_progress_params.rb +33 -0
- data/lib/language_server/protocol/interface/work_done_progress_report.rb +70 -0
- data/lib/language_server/protocol/interface/workspace_edit.rb +1 -1
- data/lib/language_server/protocol/interface/workspace_edit_client_capabilities.rb +53 -0
- data/lib/language_server/protocol/interface/workspace_folder.rb +2 -2
- data/lib/language_server/protocol/interface/workspace_folders_server_capabilities.rb +48 -0
- data/lib/language_server/protocol/interface/workspace_symbol_client_capabilities.rb +42 -0
- data/lib/language_server/protocol/interface/workspace_symbol_options.rb +25 -0
- data/lib/language_server/protocol/interface/workspace_symbol_params.rb +5 -3
- data/lib/language_server/protocol/interface/workspace_symbol_registration_options.rb +25 -0
- data/lib/language_server/protocol/transport.rb +1 -0
- data/lib/language_server/protocol/transport/io.rb +2 -0
- data/lib/language_server/protocol/transport/io/reader.rb +47 -0
- data/lib/language_server/protocol/transport/io/writer.rb +34 -0
- data/lib/language_server/protocol/transport/stdio/reader.rb +3 -29
- data/lib/language_server/protocol/transport/stdio/writer.rb +3 -18
- data/lib/language_server/protocol/version.rb +1 -1
- metadata +92 -31
- data/.gitignore +0 -10
- data/.travis.yml +0 -5
- data/CHANGELOG.md +0 -21
- data/CODE_OF_CONDUCT.md +0 -74
- data/Dockerfile-node.development +0 -6
- data/Dockerfile.development +0 -24
- data/Gemfile +0 -6
- data/Rakefile +0 -10
- data/bin/console +0 -14
- data/bin/generate_files +0 -5
- data/bin/m +0 -17
- data/bin/setup +0 -6
- data/circle.yml +0 -46
- data/docker-compose.ci.yml +0 -18
- data/docker-compose.override.yml +0 -19
- data/docker-compose.yml +0 -45
- data/language_server-protocol.gemspec +0 -31
- data/lib/language_server/protocol/interface/workspace_client_capabilities.rb +0 -104
- data/package.json +0 -10
- data/scripts/generateFiles.ts +0 -320
- data/yarn.lock +0 -293
data/Dockerfile-node.development
DELETED
data/Dockerfile.development
DELETED
|
@@ -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
data/Rakefile
DELETED
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
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
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
|
data/docker-compose.ci.yml
DELETED
|
@@ -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
|
data/docker-compose.override.yml
DELETED
|
@@ -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
data/scripts/generateFiles.ts
DELETED
|
@@ -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
|
-
})();
|