language_server-protocol 3.14.0.1 → 3.14.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +9 -1
  3. data/lib/language_server/protocol/interface/code_action_registration_options.rb +1 -0
  4. data/lib/language_server/protocol/interface/code_lens_registration_options.rb +1 -0
  5. data/lib/language_server/protocol/interface/completion_params.rb +2 -0
  6. data/lib/language_server/protocol/interface/completion_registration_options.rb +1 -0
  7. data/lib/language_server/protocol/interface/document_link_registration_options.rb +1 -0
  8. data/lib/language_server/protocol/interface/document_on_type_formatting_registration_options.rb +1 -0
  9. data/lib/language_server/protocol/interface/notification_message.rb +1 -0
  10. data/lib/language_server/protocol/interface/reference_params.rb +2 -0
  11. data/lib/language_server/protocol/interface/rename_registration_options.rb +1 -0
  12. data/lib/language_server/protocol/interface/request_message.rb +1 -0
  13. data/lib/language_server/protocol/interface/response_message.rb +1 -0
  14. data/lib/language_server/protocol/interface/signature_help_registration_options.rb +1 -0
  15. data/lib/language_server/protocol/interface/text_document_change_registration_options.rb +1 -0
  16. data/lib/language_server/protocol/interface/text_document_save_registration_options.rb +1 -0
  17. data/lib/language_server/protocol/interface/versioned_text_document_identifier.rb +1 -0
  18. data/lib/language_server/protocol/version.rb +1 -1
  19. metadata +2 -22
  20. data/.gitignore +0 -10
  21. data/.travis.yml +0 -5
  22. data/CHANGELOG.md +0 -26
  23. data/CODE_OF_CONDUCT.md +0 -74
  24. data/Dockerfile-node.development +0 -6
  25. data/Dockerfile.development +0 -24
  26. data/Gemfile +0 -6
  27. data/Rakefile +0 -10
  28. data/bin/console +0 -14
  29. data/bin/generate_files +0 -5
  30. data/bin/m +0 -17
  31. data/bin/setup +0 -6
  32. data/circle.yml +0 -40
  33. data/docker-compose.ci.yml +0 -14
  34. data/docker-compose.override.yml +0 -16
  35. data/docker-compose.yml +0 -33
  36. data/language_server-protocol.gemspec +0 -33
  37. data/package.json +0 -10
  38. data/scripts/generateFiles.ts +0 -320
  39. data/yarn.lock +0 -293
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 421a684037f06cc7621698f2e85f9032a5d8f67a469a4d36266bbdef355af192
4
- data.tar.gz: 46566651baf77dc574777806f6b2d0fb8d7a43015380b9f688dc772d0cdf8ac9
3
+ metadata.gz: 7b3ee77bec6cba0531b5550480d60d932a2074102ee192899ca2abddfebcadbf
4
+ data.tar.gz: b559fd6bc92f8ec57bd5442004757259e76d65472b2c07ef983040dd01878852
5
5
  SHA512:
6
- metadata.gz: bd257d1aab4eb25a25765826ffbe7924d8dc5e76a7645289da8d3863ef7d873156e2ca30bed215768bc873fdf5c9fb29043604d56d4322fcc2a47cdfed00af0d
7
- data.tar.gz: 23005ed19a166de779eecd57643d5eebec4c7aad3172a8af50f840080f102248aba6d98df6274a1157c117d85885341b893e871831a1f0629b16783f3e63171a
6
+ metadata.gz: ff16e6734e30b1e9ea7a0cb5e842c92f80315593c74fde9373a904fcfa1b738f354a3330369d841d85b0f07cf0fa6897d8bba175bc7af45a40af756531a6134d
7
+ data.tar.gz: 90ba3865c04e5730c0b7246736937ea5af80204745b9dae44ea8c7e612b5b1b2f4eedb252c0532df33be4927ba2ebc4036f0908c6f7f085c299138ecf23ea9d7
data/README.md CHANGED
@@ -20,7 +20,7 @@ Or install it yourself as:
20
20
 
21
21
  ## Usage
22
22
 
23
- :memo: Currently, this gem supports only stdio as transport layer.
23
+ Currently, this gem supports only stdio as transport layer out of box.
24
24
 
25
25
  ```ruby
26
26
  require "language_server-protocol"
@@ -53,6 +53,14 @@ reader.read do |request|
53
53
  end
54
54
  ```
55
55
 
56
+ You can use any IO object as transport layer:
57
+
58
+ ```ruby
59
+ io = StringIO.new
60
+ writer = LSP::Transport::Io::Writer.new(io)
61
+ reader = LSP::Transport::Io::Reader.new(io)
62
+ ```
63
+
56
64
  ## Versioning
57
65
 
58
66
  language_server-protocol gem does NOT use semantic versioning.
@@ -5,6 +5,7 @@ module LanguageServer
5
5
  def initialize(code_action_kinds: nil)
6
6
  @attributes = {}
7
7
 
8
+ @attributes[:codeActionKinds] = code_action_kinds if code_action_kinds
8
9
 
9
10
  @attributes.freeze
10
11
  end
@@ -5,6 +5,7 @@ module LanguageServer
5
5
  def initialize(document_selector:, resolve_provider: nil)
6
6
  @attributes = {}
7
7
 
8
+ @attributes[:documentSelector] = document_selector
8
9
  @attributes[:resolveProvider] = resolve_provider if resolve_provider
9
10
 
10
11
  @attributes.freeze
@@ -5,6 +5,8 @@ module LanguageServer
5
5
  def initialize(text_document:, position:, context: nil)
6
6
  @attributes = {}
7
7
 
8
+ @attributes[:textDocument] = text_document
9
+ @attributes[:position] = position
8
10
  @attributes[:context] = context if context
9
11
 
10
12
  @attributes.freeze
@@ -5,6 +5,7 @@ module LanguageServer
5
5
  def initialize(document_selector:, trigger_characters: nil, resolve_provider: nil)
6
6
  @attributes = {}
7
7
 
8
+ @attributes[:documentSelector] = document_selector
8
9
  @attributes[:triggerCharacters] = trigger_characters if trigger_characters
9
10
  @attributes[:resolveProvider] = resolve_provider if resolve_provider
10
11
 
@@ -5,6 +5,7 @@ module LanguageServer
5
5
  def initialize(document_selector:, resolve_provider: nil)
6
6
  @attributes = {}
7
7
 
8
+ @attributes[:documentSelector] = document_selector
8
9
  @attributes[:resolveProvider] = resolve_provider if resolve_provider
9
10
 
10
11
  @attributes.freeze
@@ -5,6 +5,7 @@ module LanguageServer
5
5
  def initialize(document_selector:, first_trigger_character:, more_trigger_character: nil)
6
6
  @attributes = {}
7
7
 
8
+ @attributes[:documentSelector] = document_selector
8
9
  @attributes[:firstTriggerCharacter] = first_trigger_character
9
10
  @attributes[:moreTriggerCharacter] = more_trigger_character if more_trigger_character
10
11
 
@@ -5,6 +5,7 @@ module LanguageServer
5
5
  def initialize(jsonrpc:, method:, params: nil)
6
6
  @attributes = {}
7
7
 
8
+ @attributes[:jsonrpc] = jsonrpc
8
9
  @attributes[:method] = method
9
10
  @attributes[:params] = params if params
10
11
 
@@ -5,6 +5,8 @@ module LanguageServer
5
5
  def initialize(text_document:, position:, context:)
6
6
  @attributes = {}
7
7
 
8
+ @attributes[:textDocument] = text_document
9
+ @attributes[:position] = position
8
10
  @attributes[:context] = context
9
11
 
10
12
  @attributes.freeze
@@ -5,6 +5,7 @@ module LanguageServer
5
5
  def initialize(document_selector:, prepare_provider: nil)
6
6
  @attributes = {}
7
7
 
8
+ @attributes[:documentSelector] = document_selector
8
9
  @attributes[:prepareProvider] = prepare_provider if prepare_provider
9
10
 
10
11
  @attributes.freeze
@@ -5,6 +5,7 @@ module LanguageServer
5
5
  def initialize(jsonrpc:, id:, method:, params: nil)
6
6
  @attributes = {}
7
7
 
8
+ @attributes[:jsonrpc] = jsonrpc
8
9
  @attributes[:id] = id
9
10
  @attributes[:method] = method
10
11
  @attributes[:params] = params if params
@@ -5,6 +5,7 @@ module LanguageServer
5
5
  def initialize(jsonrpc:, id:, result: nil, error: nil)
6
6
  @attributes = {}
7
7
 
8
+ @attributes[:jsonrpc] = jsonrpc
8
9
  @attributes[:id] = id
9
10
  @attributes[:result] = result if result
10
11
  @attributes[:error] = error if error
@@ -5,6 +5,7 @@ module LanguageServer
5
5
  def initialize(document_selector:, trigger_characters: nil)
6
6
  @attributes = {}
7
7
 
8
+ @attributes[:documentSelector] = document_selector
8
9
  @attributes[:triggerCharacters] = trigger_characters if trigger_characters
9
10
 
10
11
  @attributes.freeze
@@ -8,6 +8,7 @@ module LanguageServer
8
8
  def initialize(document_selector:, sync_kind:)
9
9
  @attributes = {}
10
10
 
11
+ @attributes[:documentSelector] = document_selector
11
12
  @attributes[:syncKind] = sync_kind
12
13
 
13
14
  @attributes.freeze
@@ -5,6 +5,7 @@ module LanguageServer
5
5
  def initialize(document_selector:, include_text: nil)
6
6
  @attributes = {}
7
7
 
8
+ @attributes[:documentSelector] = document_selector
8
9
  @attributes[:includeText] = include_text if include_text
9
10
 
10
11
  @attributes.freeze
@@ -5,6 +5,7 @@ module LanguageServer
5
5
  def initialize(uri:, version:)
6
6
  @attributes = {}
7
7
 
8
+ @attributes[:uri] = uri
8
9
  @attributes[:version] = version
9
10
 
10
11
  @attributes.freeze
@@ -1,5 +1,5 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
- VERSION = "3.14.0.1"
3
+ VERSION = "3.14.0.2"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: language_server-protocol
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.14.0.1
4
+ version: 3.14.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fumiaki MATSUSHIMA
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-04-26 00:00:00.000000000 Z
11
+ date: 2020-05-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -115,25 +115,8 @@ executables: []
115
115
  extensions: []
116
116
  extra_rdoc_files: []
117
117
  files:
118
- - ".gitignore"
119
- - ".travis.yml"
120
- - CHANGELOG.md
121
- - CODE_OF_CONDUCT.md
122
- - Dockerfile-node.development
123
- - Dockerfile.development
124
- - Gemfile
125
118
  - LICENSE.txt
126
119
  - README.md
127
- - Rakefile
128
- - bin/console
129
- - bin/generate_files
130
- - bin/m
131
- - bin/setup
132
- - circle.yml
133
- - docker-compose.ci.yml
134
- - docker-compose.override.yml
135
- - docker-compose.yml
136
- - language_server-protocol.gemspec
137
120
  - lib/language_server-protocol.rb
138
121
  - lib/language_server/protocol.rb
139
122
  - lib/language_server/protocol/constant.rb
@@ -283,9 +266,6 @@ files:
283
266
  - lib/language_server/protocol/transport/stdio/reader.rb
284
267
  - lib/language_server/protocol/transport/stdio/writer.rb
285
268
  - lib/language_server/protocol/version.rb
286
- - package.json
287
- - scripts/generateFiles.ts
288
- - yarn.lock
289
269
  homepage: https://github.com/mtsmfm/language_server-protocol-ruby
290
270
  licenses:
291
271
  - MIT
data/.gitignore DELETED
@@ -1,10 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /Gemfile.lock
4
- /_yardoc/
5
- /coverage/
6
- /doc/
7
- /pkg/
8
- /spec/reports/
9
- /tmp/
10
- /node_modules
data/.travis.yml DELETED
@@ -1,5 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.4.1
5
- before_install: gem install bundler -v 1.15.3
data/CHANGELOG.md DELETED
@@ -1,26 +0,0 @@
1
- # Change log
2
-
3
- ## 3.14.0.1
4
-
5
- - Drop Ruby < 2.4
6
- - Add Transport::Io (Thanks to @soutaro)
7
-
8
- ## 3.14.0.0
9
-
10
- - Update Language Server Protocol version to 3.14.0
11
-
12
- ## 3.12.0.0
13
-
14
- - Update Language Server Protocol version to 3.12.0
15
-
16
- ## 3.7.0.0
17
-
18
- - Update Language Server Protocol version to 3.7.0
19
-
20
- ## 0.5.0
21
-
22
- - Add #to_hash to keep compatibility with Rails (#10)
23
-
24
- ## 0.4.0
25
-
26
- - Fix handling `extends`
data/CODE_OF_CONDUCT.md DELETED
@@ -1,74 +0,0 @@
1
- # Contributor Covenant Code of Conduct
2
-
3
- ## Our Pledge
4
-
5
- In the interest of fostering an open and welcoming environment, we as
6
- contributors and maintainers pledge to making participation in our project and
7
- our community a harassment-free experience for everyone, regardless of age, body
8
- size, disability, ethnicity, gender identity and expression, level of experience,
9
- nationality, personal appearance, race, religion, or sexual identity and
10
- orientation.
11
-
12
- ## Our Standards
13
-
14
- Examples of behavior that contributes to creating a positive environment
15
- include:
16
-
17
- * Using welcoming and inclusive language
18
- * Being respectful of differing viewpoints and experiences
19
- * Gracefully accepting constructive criticism
20
- * Focusing on what is best for the community
21
- * Showing empathy towards other community members
22
-
23
- Examples of unacceptable behavior by participants include:
24
-
25
- * The use of sexualized language or imagery and unwelcome sexual attention or
26
- advances
27
- * Trolling, insulting/derogatory comments, and personal or political attacks
28
- * Public or private harassment
29
- * Publishing others' private information, such as a physical or electronic
30
- address, without explicit permission
31
- * Other conduct which could reasonably be considered inappropriate in a
32
- professional setting
33
-
34
- ## Our Responsibilities
35
-
36
- Project maintainers are responsible for clarifying the standards of acceptable
37
- behavior and are expected to take appropriate and fair corrective action in
38
- response to any instances of unacceptable behavior.
39
-
40
- Project maintainers have the right and responsibility to remove, edit, or
41
- reject comments, commits, code, wiki edits, issues, and other contributions
42
- that are not aligned to this Code of Conduct, or to ban temporarily or
43
- permanently any contributor for other behaviors that they deem inappropriate,
44
- threatening, offensive, or harmful.
45
-
46
- ## Scope
47
-
48
- This Code of Conduct applies both within project spaces and in public spaces
49
- when an individual is representing the project or its community. Examples of
50
- representing a project or community include using an official project e-mail
51
- address, posting via an official social media account, or acting as an appointed
52
- representative at an online or offline event. Representation of a project may be
53
- further defined and clarified by project maintainers.
54
-
55
- ## Enforcement
56
-
57
- Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
- reported by contacting the project team at mtsmfm@gmail.com. All
59
- complaints will be reviewed and investigated and will result in a response that
60
- is deemed necessary and appropriate to the circumstances. The project team is
61
- obligated to maintain confidentiality with regard to the reporter of an incident.
62
- Further details of specific enforcement policies may be posted separately.
63
-
64
- Project maintainers who do not follow or enforce the Code of Conduct in good
65
- faith may face temporary or permanent repercussions as determined by other
66
- members of the project's leadership.
67
-
68
- ## Attribution
69
-
70
- This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
- available at [http://contributor-covenant.org/version/1/4][version]
72
-
73
- [homepage]: http://contributor-covenant.org
74
- [version]: http://contributor-covenant.org/version/1/4/
@@ -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,40 +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
-
34
- workflows:
35
- version: 2
36
- test_and_buld:
37
- jobs:
38
- - ruby-2-6
39
- - ruby-2-5
40
- - ruby-2-4
@@ -1,14 +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
- node:
11
- <<: *latest
12
- volumes:
13
- project:
14
- external: true
@@ -1,16 +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
- - $HOME/.netrc:/home/ruby/.netrc
10
- ruby-2-5:
11
- <<: *latest
12
- ruby-2-4:
13
- <<: *latest
14
- node:
15
- volumes:
16
- - .:/app:cached
data/docker-compose.yml DELETED
@@ -1,33 +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.3
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.5
18
- ruby-2-4:
19
- <<: *latest
20
- build:
21
- <<: *build
22
- args:
23
- RUBY_VERSION: 2.4.6
24
- node:
25
- build:
26
- context: .
27
- dockerfile: Dockerfile-node.development
28
- volumes:
29
- - vendor:/vendor
30
- - home:/home/node
31
- volumes:
32
- vendor:
33
- home:
@@ -1,33 +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.required_ruby_version = ">= 2.4.0"
25
-
26
- spec.add_development_dependency "bundler", "~> 1.15"
27
- spec.add_development_dependency "rake", "~> 10.0"
28
- spec.add_development_dependency "minitest", "~> 5.0"
29
- spec.add_development_dependency "pry-byebug"
30
- spec.add_development_dependency "minitest-power_assert"
31
- spec.add_development_dependency "m"
32
- spec.add_development_dependency "activesupport"
33
- 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
- })();
data/yarn.lock DELETED
@@ -1,293 +0,0 @@
1
- # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2
- # yarn lockfile v1
3
-
4
-
5
- "@types/es6-promise@^0.0.32":
6
- version "0.0.32"
7
- resolved "https://registry.yarnpkg.com/@types/es6-promise/-/es6-promise-0.0.32.tgz#3bcf44fb1e429f3df76188c8c6d874463ba371fd"
8
-
9
- "@types/node@^7.0.18":
10
- version "7.0.43"
11
- resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.43.tgz#a187e08495a075f200ca946079c914e1a5fe962c"
12
-
13
- align-text@^0.1.1, align-text@^0.1.3:
14
- version "0.1.4"
15
- resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
16
- dependencies:
17
- kind-of "^3.0.2"
18
- longest "^1.0.1"
19
- repeat-string "^1.5.2"
20
-
21
- amdefine@>=0.0.4:
22
- version "1.0.1"
23
- resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
24
-
25
- ansi-styles@^3.1.0:
26
- version "3.2.0"
27
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88"
28
- dependencies:
29
- color-convert "^1.9.0"
30
-
31
- arrify@^1.0.0:
32
- version "1.0.1"
33
- resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
34
-
35
- async@^1.4.0:
36
- version "1.5.2"
37
- resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
38
-
39
- camelcase@^1.0.2:
40
- version "1.2.1"
41
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
42
-
43
- center-align@^0.1.1:
44
- version "0.1.3"
45
- resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
46
- dependencies:
47
- align-text "^0.1.3"
48
- lazy-cache "^1.0.3"
49
-
50
- chalk@^2.0.0:
51
- version "2.1.0"
52
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e"
53
- dependencies:
54
- ansi-styles "^3.1.0"
55
- escape-string-regexp "^1.0.5"
56
- supports-color "^4.0.0"
57
-
58
- cliui@^2.1.0:
59
- version "2.1.0"
60
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
61
- dependencies:
62
- center-align "^0.1.1"
63
- right-align "^0.1.1"
64
- wordwrap "0.0.2"
65
-
66
- color-convert@^1.9.0:
67
- version "1.9.0"
68
- resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a"
69
- dependencies:
70
- color-name "^1.1.1"
71
-
72
- color-name@^1.1.1:
73
- version "1.1.3"
74
- resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
75
-
76
- decamelize@^1.0.0:
77
- version "1.2.0"
78
- resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
79
-
80
- diff@^3.1.0:
81
- version "3.3.1"
82
- resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75"
83
-
84
- encoding@^0.1.11:
85
- version "0.1.12"
86
- resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
87
- dependencies:
88
- iconv-lite "~0.4.13"
89
-
90
- escape-string-regexp@^1.0.5:
91
- version "1.0.5"
92
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
93
-
94
- handlebars@^4.0.8:
95
- version "4.0.10"
96
- resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.10.tgz#3d30c718b09a3d96f23ea4cc1f403c4d3ba9ff4f"
97
- dependencies:
98
- async "^1.4.0"
99
- optimist "^0.6.1"
100
- source-map "^0.4.4"
101
- optionalDependencies:
102
- uglify-js "^2.6"
103
-
104
- has-flag@^2.0.0:
105
- version "2.0.0"
106
- resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
107
-
108
- iconv-lite@~0.4.13:
109
- version "0.4.19"
110
- resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
111
-
112
- is-buffer@^1.1.5:
113
- version "1.1.5"
114
- resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc"
115
-
116
- is-stream@^1.0.1:
117
- version "1.1.0"
118
- resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
119
-
120
- isomorphic-fetch@^2.2.1:
121
- version "2.2.1"
122
- resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
123
- dependencies:
124
- node-fetch "^1.0.1"
125
- whatwg-fetch ">=0.10.0"
126
-
127
- kind-of@^3.0.2:
128
- version "3.2.2"
129
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
130
- dependencies:
131
- is-buffer "^1.1.5"
132
-
133
- lazy-cache@^1.0.3:
134
- version "1.0.4"
135
- resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
136
-
137
- longest@^1.0.1:
138
- version "1.0.1"
139
- resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
140
-
141
- make-error@^1.1.1:
142
- version "1.3.0"
143
- resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.0.tgz#52ad3a339ccf10ce62b4040b708fe707244b8b96"
144
-
145
- minimist@0.0.8:
146
- version "0.0.8"
147
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
148
-
149
- minimist@^1.2.0:
150
- version "1.2.0"
151
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
152
-
153
- minimist@~0.0.1:
154
- version "0.0.10"
155
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
156
-
157
- mkdirp@^0.5.1:
158
- version "0.5.1"
159
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
160
- dependencies:
161
- minimist "0.0.8"
162
-
163
- node-fetch@^1.0.1:
164
- version "1.7.3"
165
- resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
166
- dependencies:
167
- encoding "^0.1.11"
168
- is-stream "^1.0.1"
169
-
170
- optimist@^0.6.1:
171
- version "0.6.1"
172
- resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
173
- dependencies:
174
- minimist "~0.0.1"
175
- wordwrap "~0.0.2"
176
-
177
- repeat-string@^1.5.2:
178
- version "1.6.1"
179
- resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
180
-
181
- right-align@^0.1.1:
182
- version "0.1.3"
183
- resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
184
- dependencies:
185
- align-text "^0.1.1"
186
-
187
- source-map-support@^0.4.0:
188
- version "0.4.18"
189
- resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f"
190
- dependencies:
191
- source-map "^0.5.6"
192
-
193
- source-map@^0.4.4:
194
- version "0.4.4"
195
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
196
- dependencies:
197
- amdefine ">=0.0.4"
198
-
199
- source-map@^0.5.6, source-map@~0.5.1:
200
- version "0.5.7"
201
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
202
-
203
- strip-bom@^3.0.0:
204
- version "3.0.0"
205
- resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
206
-
207
- strip-json-comments@^2.0.0:
208
- version "2.0.1"
209
- resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
210
-
211
- supports-color@^4.0.0:
212
- version "4.4.0"
213
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e"
214
- dependencies:
215
- has-flag "^2.0.0"
216
-
217
- ts-node@^3.0.4:
218
- version "3.3.0"
219
- resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-3.3.0.tgz#c13c6a3024e30be1180dd53038fc209289d4bf69"
220
- dependencies:
221
- arrify "^1.0.0"
222
- chalk "^2.0.0"
223
- diff "^3.1.0"
224
- make-error "^1.1.1"
225
- minimist "^1.2.0"
226
- mkdirp "^0.5.1"
227
- source-map-support "^0.4.0"
228
- tsconfig "^6.0.0"
229
- v8flags "^3.0.0"
230
- yn "^2.0.0"
231
-
232
- tsconfig@^6.0.0:
233
- version "6.0.0"
234
- resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-6.0.0.tgz#6b0e8376003d7af1864f8df8f89dd0059ffcd032"
235
- dependencies:
236
- strip-bom "^3.0.0"
237
- strip-json-comments "^2.0.0"
238
-
239
- typescript@^2.3.2:
240
- version "2.5.2"
241
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.5.2.tgz#038a95f7d9bbb420b1bf35ba31d4c5c1dd3ffe34"
242
-
243
- uglify-js@^2.6:
244
- version "2.8.29"
245
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
246
- dependencies:
247
- source-map "~0.5.1"
248
- yargs "~3.10.0"
249
- optionalDependencies:
250
- uglify-to-browserify "~1.0.0"
251
-
252
- uglify-to-browserify@~1.0.0:
253
- version "1.0.2"
254
- resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
255
-
256
- user-home@^1.1.1:
257
- version "1.1.1"
258
- resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190"
259
-
260
- v8flags@^3.0.0:
261
- version "3.0.0"
262
- resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.0.0.tgz#4be9604488e0c4123645def705b1848d16b8e01f"
263
- dependencies:
264
- user-home "^1.1.1"
265
-
266
- whatwg-fetch@>=0.10.0:
267
- version "2.0.3"
268
- resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84"
269
-
270
- window-size@0.1.0:
271
- version "0.1.0"
272
- resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
273
-
274
- wordwrap@0.0.2:
275
- version "0.0.2"
276
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
277
-
278
- wordwrap@~0.0.2:
279
- version "0.0.3"
280
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
281
-
282
- yargs@~3.10.0:
283
- version "3.10.0"
284
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
285
- dependencies:
286
- camelcase "^1.0.2"
287
- cliui "^2.1.0"
288
- decamelize "^1.0.0"
289
- window-size "0.1.0"
290
-
291
- yn@^2.0.0:
292
- version "2.0.0"
293
- resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a"