yoda-language-server 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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!**