yoda-language-server 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +16 -0
  3. data/.rspec +3 -0
  4. data/.travis.yml +8 -0
  5. data/Gemfile +6 -0
  6. data/Gemfile.lock +78 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +85 -0
  9. data/Rakefile +6 -0
  10. data/bin/console +14 -0
  11. data/bin/setup +8 -0
  12. data/client/atom/main.js +27 -0
  13. data/client/vscode/.gitignore +4 -0
  14. data/client/vscode/.vscode/launch.json +28 -0
  15. data/client/vscode/.vscode/settings.json +9 -0
  16. data/client/vscode/.vscode/tasks.json +20 -0
  17. data/client/vscode/.vscodeignore +8 -0
  18. data/client/vscode/CHANGELOG.md +7 -0
  19. data/client/vscode/README.md +65 -0
  20. data/client/vscode/package-lock.json +2688 -0
  21. data/client/vscode/package.json +39 -0
  22. data/client/vscode/src/extension.ts +42 -0
  23. data/client/vscode/src/test/extension.test.ts +22 -0
  24. data/client/vscode/src/test/index.ts +22 -0
  25. data/client/vscode/tsconfig.json +16 -0
  26. data/client/vscode/vsc-extension-quickstart.md +33 -0
  27. data/exe/yoda +27 -0
  28. data/lib/yoda.rb +11 -0
  29. data/lib/yoda/evaluation.rb +9 -0
  30. data/lib/yoda/evaluation/code_completion.rb +65 -0
  31. data/lib/yoda/evaluation/code_completion/base_provider.rb +57 -0
  32. data/lib/yoda/evaluation/code_completion/const_provider.rb +90 -0
  33. data/lib/yoda/evaluation/code_completion/method_provider.rb +82 -0
  34. data/lib/yoda/evaluation/code_completion/variable_provider.rb +18 -0
  35. data/lib/yoda/evaluation/comment_completion.rb +70 -0
  36. data/lib/yoda/evaluation/comment_completion/base_provider.rb +64 -0
  37. data/lib/yoda/evaluation/comment_completion/param_provider.rb +18 -0
  38. data/lib/yoda/evaluation/comment_completion/tag_provider.rb +41 -0
  39. data/lib/yoda/evaluation/comment_completion/type_provider.rb +58 -0
  40. data/lib/yoda/evaluation/current_node_explain.rb +70 -0
  41. data/lib/yoda/evaluation/evaluator.rb +103 -0
  42. data/lib/yoda/evaluation/signature_discovery.rb +83 -0
  43. data/lib/yoda/model.rb +12 -0
  44. data/lib/yoda/model/completion_item.rb +56 -0
  45. data/lib/yoda/model/descriptions.rb +10 -0
  46. data/lib/yoda/model/descriptions/base.rb +26 -0
  47. data/lib/yoda/model/descriptions/function_description.rb +40 -0
  48. data/lib/yoda/model/descriptions/value_description.rb +33 -0
  49. data/lib/yoda/model/descriptions/word_description.rb +32 -0
  50. data/lib/yoda/model/function_signatures.rb +13 -0
  51. data/lib/yoda/model/function_signatures/base.rb +68 -0
  52. data/lib/yoda/model/function_signatures/constructor.rb +70 -0
  53. data/lib/yoda/model/function_signatures/formatter.rb +82 -0
  54. data/lib/yoda/model/function_signatures/method.rb +67 -0
  55. data/lib/yoda/model/function_signatures/overload.rb +79 -0
  56. data/lib/yoda/model/function_signatures/parameter_list.rb +108 -0
  57. data/lib/yoda/model/function_signatures/type_builder.rb +101 -0
  58. data/lib/yoda/model/node_signature.rb +28 -0
  59. data/lib/yoda/model/path.rb +96 -0
  60. data/lib/yoda/model/scoped_path.rb +44 -0
  61. data/lib/yoda/model/types.rb +84 -0
  62. data/lib/yoda/model/types/any_type.rb +32 -0
  63. data/lib/yoda/model/types/base.rb +37 -0
  64. data/lib/yoda/model/types/duck_type.rb +41 -0
  65. data/lib/yoda/model/types/function_type.rb +174 -0
  66. data/lib/yoda/model/types/generic_type.rb +66 -0
  67. data/lib/yoda/model/types/instance_type.rb +42 -0
  68. data/lib/yoda/model/types/module_type.rb +42 -0
  69. data/lib/yoda/model/types/sequence_type.rb +53 -0
  70. data/lib/yoda/model/types/union_type.rb +56 -0
  71. data/lib/yoda/model/types/unknown_type.rb +40 -0
  72. data/lib/yoda/model/types/value_type.rb +58 -0
  73. data/lib/yoda/model/values.rb +9 -0
  74. data/lib/yoda/model/values/base.rb +32 -0
  75. data/lib/yoda/model/values/instance_value.rb +65 -0
  76. data/lib/yoda/model/values/module_value.rb +72 -0
  77. data/lib/yoda/parsing.rb +15 -0
  78. data/lib/yoda/parsing/ast_traversable.rb +18 -0
  79. data/lib/yoda/parsing/comment_tokenizer.rb +59 -0
  80. data/lib/yoda/parsing/location.rb +101 -0
  81. data/lib/yoda/parsing/node_objects.rb +10 -0
  82. data/lib/yoda/parsing/node_objects/const_node.rb +52 -0
  83. data/lib/yoda/parsing/node_objects/method_definition.rb +46 -0
  84. data/lib/yoda/parsing/node_objects/namespace.rb +104 -0
  85. data/lib/yoda/parsing/node_objects/send_node.rb +72 -0
  86. data/lib/yoda/parsing/parser.rb +27 -0
  87. data/lib/yoda/parsing/query.rb +11 -0
  88. data/lib/yoda/parsing/query/current_comment_query.rb +80 -0
  89. data/lib/yoda/parsing/query/current_comment_token_query.rb +153 -0
  90. data/lib/yoda/parsing/query/current_commenting_node_query.rb +68 -0
  91. data/lib/yoda/parsing/query/current_location_node_query.rb +51 -0
  92. data/lib/yoda/parsing/query/current_node_comment_query.rb +40 -0
  93. data/lib/yoda/parsing/range.rb +41 -0
  94. data/lib/yoda/parsing/scopes.rb +15 -0
  95. data/lib/yoda/parsing/scopes/base.rb +78 -0
  96. data/lib/yoda/parsing/scopes/builder.rb +60 -0
  97. data/lib/yoda/parsing/scopes/class_definition.rb +47 -0
  98. data/lib/yoda/parsing/scopes/meta_class_definition.rb +44 -0
  99. data/lib/yoda/parsing/scopes/meta_method_definition.rb +70 -0
  100. data/lib/yoda/parsing/scopes/method_definition.rb +69 -0
  101. data/lib/yoda/parsing/scopes/module_definition.rb +36 -0
  102. data/lib/yoda/parsing/scopes/root.rb +25 -0
  103. data/lib/yoda/parsing/source_analyzer.rb +59 -0
  104. data/lib/yoda/parsing/source_cutter.rb +231 -0
  105. data/lib/yoda/parsing/type_parser.rb +141 -0
  106. data/lib/yoda/runner.rb +6 -0
  107. data/lib/yoda/runner/infer.rb +50 -0
  108. data/lib/yoda/runner/setup.rb +26 -0
  109. data/lib/yoda/server.rb +191 -0
  110. data/lib/yoda/server/client_info.rb +98 -0
  111. data/lib/yoda/server/completion_provider.rb +78 -0
  112. data/lib/yoda/server/definition_provider.rb +36 -0
  113. data/lib/yoda/server/deserializer.rb +27 -0
  114. data/lib/yoda/server/hover_provider.rb +38 -0
  115. data/lib/yoda/server/signature_provider.rb +46 -0
  116. data/lib/yoda/store.rb +13 -0
  117. data/lib/yoda/store/actions.rb +10 -0
  118. data/lib/yoda/store/actions/import_core_library.rb +30 -0
  119. data/lib/yoda/store/actions/import_gems.rb +91 -0
  120. data/lib/yoda/store/actions/read_file.rb +36 -0
  121. data/lib/yoda/store/actions/read_project_files.rb +29 -0
  122. data/lib/yoda/store/adapters.rb +14 -0
  123. data/lib/yoda/store/adapters/base.rb +58 -0
  124. data/lib/yoda/store/adapters/leveldb_adapter.rb +80 -0
  125. data/lib/yoda/store/adapters/lmdb_adapter.rb +113 -0
  126. data/lib/yoda/store/objects.rb +46 -0
  127. data/lib/yoda/store/objects/addressable.rb +25 -0
  128. data/lib/yoda/store/objects/base.rb +116 -0
  129. data/lib/yoda/store/objects/class_object.rb +51 -0
  130. data/lib/yoda/store/objects/merger.rb +94 -0
  131. data/lib/yoda/store/objects/meta_class_object.rb +41 -0
  132. data/lib/yoda/store/objects/method_object.rb +94 -0
  133. data/lib/yoda/store/objects/module_object.rb +11 -0
  134. data/lib/yoda/store/objects/namespace_object.rb +67 -0
  135. data/lib/yoda/store/objects/overload.rb +51 -0
  136. data/lib/yoda/store/objects/patch.rb +46 -0
  137. data/lib/yoda/store/objects/patch_set.rb +80 -0
  138. data/lib/yoda/store/objects/tag.rb +62 -0
  139. data/lib/yoda/store/objects/value_object.rb +45 -0
  140. data/lib/yoda/store/project.rb +159 -0
  141. data/lib/yoda/store/query.rb +12 -0
  142. data/lib/yoda/store/query/associators.rb +10 -0
  143. data/lib/yoda/store/query/associators/associate_ancestors.rb +103 -0
  144. data/lib/yoda/store/query/associators/associate_methods.rb +38 -0
  145. data/lib/yoda/store/query/base.rb +16 -0
  146. data/lib/yoda/store/query/find_constant.rb +150 -0
  147. data/lib/yoda/store/query/find_meta_class.rb +18 -0
  148. data/lib/yoda/store/query/find_method.rb +74 -0
  149. data/lib/yoda/store/query/find_signature.rb +43 -0
  150. data/lib/yoda/store/registry.rb +67 -0
  151. data/lib/yoda/store/yard_importer.rb +260 -0
  152. data/lib/yoda/typing.rb +10 -0
  153. data/lib/yoda/typing/context.rb +96 -0
  154. data/lib/yoda/typing/environment.rb +35 -0
  155. data/lib/yoda/typing/evaluator.rb +256 -0
  156. data/lib/yoda/typing/lexical_scope.rb +26 -0
  157. data/lib/yoda/typing/relation.rb +15 -0
  158. data/lib/yoda/typing/traces.rb +9 -0
  159. data/lib/yoda/typing/traces/base.rb +26 -0
  160. data/lib/yoda/typing/traces/normal.rb +22 -0
  161. data/lib/yoda/typing/traces/send.rb +26 -0
  162. data/lib/yoda/version.rb +3 -0
  163. data/lib/yoda/yard_extensions.rb +11 -0
  164. data/lib/yoda/yard_extensions/sig_directive.rb +40 -0
  165. data/lib/yoda/yard_extensions/type_tag.rb +10 -0
  166. data/package.json +76 -0
  167. data/scripts/benchmark.rb +6 -0
  168. data/scripts/build_core_index.sh +16 -0
  169. data/yarn.lock +13 -0
  170. data/yoda-language-server.gemspec +40 -0
  171. metadata +424 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 001724de241be64253d5e1c09e5de284545b7b2f2fc073f487e8979e7871355f
4
+ data.tar.gz: 4fa65ab65b56e0a28b6a8dbf52280af0d13d0d996156c6c7dd23247110026144
5
+ SHA512:
6
+ metadata.gz: 36349059a4380f247873886527604d3efaf0aae9df3abe091fa77527ef60ee3257941b08bb913d511d57ac8c5de63664033248574c80457c70a21ac28bc77d26
7
+ data.tar.gz: 4dee3e77910363a8be083cc326b85a7b9172e7e7158880fc50545eab77fc2e758e5375ef38d1c7f8d07b0e9ec673b42eceb9dec97937e3244a5f9d6c58c5cd59
@@ -0,0 +1,16 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+
10
+ # rspec failure tracking
11
+ .rspec_status
12
+
13
+ /node_modules/
14
+ /yarn-error.log
15
+
16
+ /core/
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
@@ -0,0 +1,8 @@
1
+ sudo: false
2
+ language: ruby
3
+ rvm:
4
+ - 2.4.1
5
+ before_script: ./scripts/build_core_index.sh
6
+ script:
7
+ - bundle exec ruby scripts/benchmark.rb
8
+ - bundle exec rake
data/Gemfile ADDED
@@ -0,0 +1,6 @@
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 yoda.gemspec
6
+ gemspec
@@ -0,0 +1,78 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ yoda-language-server (0.4.0)
5
+ language_server-protocol (~> 3.7.0.0)
6
+ leveldb (~> 0.1.9)
7
+ lmdb (~> 0.4.8)
8
+ parser (~> 2.0)
9
+ parslet (~> 1.8)
10
+ ruby-progressbar
11
+ yard (~> 0.9.11)
12
+
13
+ GEM
14
+ remote: https://rubygems.org/
15
+ specs:
16
+ ast (2.4.0)
17
+ benchmark-perf (0.2.1)
18
+ binding_of_caller (0.8.0)
19
+ debug_inspector (>= 0.0.1)
20
+ coderay (1.1.2)
21
+ debug_inspector (0.0.3)
22
+ diff-lcs (1.3)
23
+ fiddler-rb (0.1.2)
24
+ interception (0.5)
25
+ language_server-protocol (3.7.0.0)
26
+ leveldb (0.1.9)
27
+ fiddler-rb (~> 0.1.1)
28
+ lmdb (0.4.8)
29
+ method_source (0.9.0)
30
+ parser (2.5.1.0)
31
+ ast (~> 2.4.0)
32
+ parslet (1.8.2)
33
+ pry (0.11.3)
34
+ coderay (~> 1.1.0)
35
+ method_source (~> 0.9.0)
36
+ pry-rescue (1.4.5)
37
+ interception (>= 0.5)
38
+ pry
39
+ pry-stack_explorer (0.4.9.2)
40
+ binding_of_caller (>= 0.7)
41
+ pry (>= 0.9.11)
42
+ rake (10.5.0)
43
+ rspec (3.7.0)
44
+ rspec-core (~> 3.7.0)
45
+ rspec-expectations (~> 3.7.0)
46
+ rspec-mocks (~> 3.7.0)
47
+ rspec-benchmark (0.3.0)
48
+ benchmark-perf (~> 0.2.0)
49
+ rspec (>= 3.0.0, < 4.0.0)
50
+ rspec-core (3.7.1)
51
+ rspec-support (~> 3.7.0)
52
+ rspec-expectations (3.7.0)
53
+ diff-lcs (>= 1.2.0, < 2.0)
54
+ rspec-support (~> 3.7.0)
55
+ rspec-mocks (3.7.0)
56
+ diff-lcs (>= 1.2.0, < 2.0)
57
+ rspec-support (~> 3.7.0)
58
+ rspec-support (3.7.1)
59
+ ruby-progressbar (1.9.0)
60
+ stackprof (0.2.11)
61
+ yard (0.9.14)
62
+
63
+ PLATFORMS
64
+ ruby
65
+
66
+ DEPENDENCIES
67
+ bundler (~> 1.16)
68
+ pry (~> 0.11)
69
+ pry-rescue (~> 1.4)
70
+ pry-stack_explorer (~> 0.4)
71
+ rake (~> 10.0)
72
+ rspec (~> 3.0)
73
+ rspec-benchmark (~> 0.3)
74
+ stackprof
75
+ yoda-language-server!
76
+
77
+ BUNDLED WITH
78
+ 1.16.1
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2017 Tomoya Chiba
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
@@ -0,0 +1,85 @@
1
+ # Yoda (In Progress) [![Build Status](https://travis-ci.org/tomoasleep/yoda.svg?branch=master)](https://travis-ci.org/tomoasleep/yoda)
2
+
3
+ Yoda is a static analytics tool for Ruby to provide autocompletion, go-to-definition, documentation on hover and so on.
4
+ Yoda is designed to provide these features for multiple editors by using language server protocol (https://microsoft.github.io/language-server-protocol/).
5
+
6
+ ## Language Server
7
+
8
+ `yoda server` provides many features such as autocompletion and hovering datatips over language server protocol (https://microsoft.github.io/language-server-protocol/).
9
+
10
+ ### Supporting Features
11
+
12
+ - autocompletion
13
+ - [x] method completion
14
+ - Supported in method bodies only
15
+ - [ ] constant completion
16
+ - [ ] (local, class, instance) variable completion
17
+ - :small_red_triangle: comment completion
18
+ - [x] YARD tag completion
19
+ - [x] YARD type literal completion
20
+ - [ ] parameter completion
21
+ - :small_red_triangle: jump to definition
22
+ - Supported in method bodies only
23
+ - :small_red_triangle: hover
24
+ - Supported in method bodies only
25
+ - :small_red_triangle: signature help
26
+ - Supported in method bodies only
27
+ - [ ] find references
28
+ - [ ] workspace symbols
29
+ - [ ] diagnostics
30
+
31
+ ## Internal
32
+
33
+ Yoda analyzes your program structure without executing your code by using ruby parser and YARD.
34
+ Yoda figures program structures of your dependencies from YARD index files and
35
+ figures one of your project codes by parsing your project codes.
36
+
37
+ Yoda internally uses YARD for program analysis so Yoda can understand type hints written in your comments such as `@return` tags and `@param` tags.
38
+ Yoda utilizes these type hints for completion features.
39
+
40
+ ## Installation
41
+
42
+ ### Install cli command
43
+
44
+ ```
45
+ $ bundle exec rake install
46
+ $ ./scripts/build_core_index.sh # Download Ruby source code and build index of ruby core and stdlib.
47
+ ```
48
+
49
+ You can infer the type of the specified code.
50
+
51
+ ```
52
+ $ yoda setup # Build index for your project
53
+ $ yoda infer <YOUR_FILE_TO_INSPECT>:<LINE_NUMBER>:<COLUMN_NUMBER>
54
+ ```
55
+
56
+ ### Install Atom Package
57
+
58
+ This repository contains an Atom package to use Yoda.
59
+ (This package is alpha version and it has many bugs.)
60
+
61
+ This package requires cli
62
+
63
+ ```
64
+ $ ./bin/setup
65
+ $ apm link
66
+ ```
67
+
68
+
69
+ ## Usage
70
+
71
+ TBW
72
+
73
+ ## Development
74
+
75
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
76
+
77
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
78
+
79
+ ## Contributing
80
+
81
+ Bug reports and pull requests are welcome on GitHub at https://github.com/tomoasleep/yoda.
82
+
83
+ ## License
84
+
85
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "yoda"
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__)
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,27 @@
1
+ const { AutoLanguageClient } = require('atom-languageclient')
2
+ const { spawn } = require('child_process')
3
+ const { resolve } = require('path')
4
+
5
+ class YodaClient extends AutoLanguageClient {
6
+ constructor() {
7
+ super()
8
+ atom.config.set('core.debugLSP', true) // Debug the hell out of this
9
+ }
10
+ getGrammarScopes () { return ['source.ruby', 'source.rb', 'source.ruby.rails'] }
11
+ getLanguageName () { return 'Ruby' }
12
+ getServerName () { return 'Yoda' }
13
+ getConnectionType() { return 'stdio' }
14
+
15
+ startServerProcess () {
16
+ const yoda = atom.inDevMode() ? spawn(resolve(__dirname, '../../exe/yoda'), ['server']) : spawn('yoda', ['server']);
17
+ yoda.stderr.on('data', (data) => {
18
+ this.logger.warn(`${data}`);
19
+ });
20
+ yoda.on('close', (code) => {
21
+ this.logger.debug(`child process exited with code ${code}`);
22
+ });
23
+ return yoda;
24
+ }
25
+ }
26
+
27
+ module.exports = new YodaClient()
@@ -0,0 +1,4 @@
1
+ out
2
+ node_modules
3
+ .vscode-test/
4
+ .vsix
@@ -0,0 +1,28 @@
1
+ // A launch configuration that compiles the extension and then opens it inside a new window
2
+ {
3
+ "version": "0.1.0",
4
+ "configurations": [
5
+ {
6
+ "name": "Extension",
7
+ "type": "extensionHost",
8
+ "request": "launch",
9
+ "runtimeExecutable": "${execPath}",
10
+ "args": ["--extensionDevelopmentPath=${workspaceRoot}" ],
11
+ "stopOnEntry": false,
12
+ "sourceMaps": true,
13
+ "outFiles": [ "${workspaceRoot}/out/**/*.js" ],
14
+ "preLaunchTask": "npm: watch"
15
+ },
16
+ {
17
+ "name": "Extension Tests",
18
+ "type": "extensionHost",
19
+ "request": "launch",
20
+ "runtimeExecutable": "${execPath}",
21
+ "args": ["--extensionDevelopmentPath=${workspaceRoot}", "--extensionTestsPath=${workspaceRoot}/out/test" ],
22
+ "stopOnEntry": false,
23
+ "sourceMaps": true,
24
+ "outFiles": [ "${workspaceRoot}/out/test/**/*.js" ],
25
+ "preLaunchTask": "npm: watch"
26
+ }
27
+ ]
28
+ }
@@ -0,0 +1,9 @@
1
+ // Place your settings in this file to overwrite default and user settings.
2
+ {
3
+ "files.exclude": {
4
+ "out": false // set this to true to hide the "out" folder with the compiled JS files
5
+ },
6
+ "search.exclude": {
7
+ "out": true // set this to false to include "out" folder in search results
8
+ }
9
+ }
@@ -0,0 +1,20 @@
1
+ // See https://go.microsoft.com/fwlink/?LinkId=733558
2
+ // for the documentation about the tasks.json format
3
+ {
4
+ "version": "2.0.0",
5
+ "tasks": [
6
+ {
7
+ "type": "npm",
8
+ "script": "watch",
9
+ "problemMatcher": "$tsc-watch",
10
+ "isBackground": true,
11
+ "presentation": {
12
+ "reveal": "never"
13
+ },
14
+ "group": {
15
+ "kind": "build",
16
+ "isDefault": true
17
+ }
18
+ }
19
+ ]
20
+ }
@@ -0,0 +1,8 @@
1
+ .vscode/**
2
+ .vscode-test/**
3
+ out/test/**
4
+ out/**/*.map
5
+ src/**
6
+ .gitignore
7
+ tsconfig.json
8
+ vsc-extension-quickstart.md
@@ -0,0 +1,7 @@
1
+ # Change Log
2
+ All notable changes to the "yoda" extension will be documented in this file.
3
+
4
+ Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
5
+
6
+ ## [Unreleased]
7
+ - Initial release
@@ -0,0 +1,65 @@
1
+ # yoda README
2
+
3
+ This is the README for your extension "yoda". After writing up a brief description, we recommend including the following sections.
4
+
5
+ ## Features
6
+
7
+ Describe specific features of your extension including screenshots of your extension in action. Image paths are relative to this README file.
8
+
9
+ For example if there is an image subfolder under your extension project workspace:
10
+
11
+ \!\[feature X\]\(images/feature-x.png\)
12
+
13
+ > Tip: Many popular extensions utilize animations. This is an excellent way to show off your extension! We recommend short, focused animations that are easy to follow.
14
+
15
+ ## Requirements
16
+
17
+ If you have any requirements or dependencies, add a section describing those and how to install and configure them.
18
+
19
+ ## Extension Settings
20
+
21
+ Include if your extension adds any VS Code settings through the `contributes.configuration` extension point.
22
+
23
+ For example:
24
+
25
+ This extension contributes the following settings:
26
+
27
+ * `myExtension.enable`: enable/disable this extension
28
+ * `myExtension.thing`: set to `blah` to do something
29
+
30
+ ## Known Issues
31
+
32
+ Calling out known issues can help limit users opening duplicate issues against your extension.
33
+
34
+ ## Release Notes
35
+
36
+ Users appreciate release notes as you update your extension.
37
+
38
+ ### 1.0.0
39
+
40
+ Initial release of ...
41
+
42
+ ### 1.0.1
43
+
44
+ Fixed issue #.
45
+
46
+ ### 1.1.0
47
+
48
+ Added features X, Y, and Z.
49
+
50
+ -----------------------------------------------------------------------------------------------------------
51
+
52
+ ## Working with Markdown
53
+
54
+ **Note:** You can author your README using Visual Studio Code. Here are some useful editor keyboard shortcuts:
55
+
56
+ * Split the editor (`Cmd+\` on OSX or `Ctrl+\` on Windows and Linux)
57
+ * Toggle preview (`Shift+CMD+V` on OSX or `Shift+Ctrl+V` on Windows and Linux)
58
+ * Press `Ctrl+Space` (Windows, Linux) or `Cmd+Space` (OSX) to see a list of Markdown snippets
59
+
60
+ ### For more information
61
+
62
+ * [Visual Studio Code's Markdown Support](http://code.visualstudio.com/docs/languages/markdown)
63
+ * [Markdown Syntax Reference](https://help.github.com/articles/markdown-basics/)
64
+
65
+ **Enjoy!**