yoda-language-server 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +16 -0
- data/.rspec +3 -0
- data/.travis.yml +8 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +78 -0
- data/LICENSE.txt +21 -0
- data/README.md +85 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/client/atom/main.js +27 -0
- data/client/vscode/.gitignore +4 -0
- data/client/vscode/.vscode/launch.json +28 -0
- data/client/vscode/.vscode/settings.json +9 -0
- data/client/vscode/.vscode/tasks.json +20 -0
- data/client/vscode/.vscodeignore +8 -0
- data/client/vscode/CHANGELOG.md +7 -0
- data/client/vscode/README.md +65 -0
- data/client/vscode/package-lock.json +2688 -0
- data/client/vscode/package.json +39 -0
- data/client/vscode/src/extension.ts +42 -0
- data/client/vscode/src/test/extension.test.ts +22 -0
- data/client/vscode/src/test/index.ts +22 -0
- data/client/vscode/tsconfig.json +16 -0
- data/client/vscode/vsc-extension-quickstart.md +33 -0
- data/exe/yoda +27 -0
- data/lib/yoda.rb +11 -0
- data/lib/yoda/evaluation.rb +9 -0
- data/lib/yoda/evaluation/code_completion.rb +65 -0
- data/lib/yoda/evaluation/code_completion/base_provider.rb +57 -0
- data/lib/yoda/evaluation/code_completion/const_provider.rb +90 -0
- data/lib/yoda/evaluation/code_completion/method_provider.rb +82 -0
- data/lib/yoda/evaluation/code_completion/variable_provider.rb +18 -0
- data/lib/yoda/evaluation/comment_completion.rb +70 -0
- data/lib/yoda/evaluation/comment_completion/base_provider.rb +64 -0
- data/lib/yoda/evaluation/comment_completion/param_provider.rb +18 -0
- data/lib/yoda/evaluation/comment_completion/tag_provider.rb +41 -0
- data/lib/yoda/evaluation/comment_completion/type_provider.rb +58 -0
- data/lib/yoda/evaluation/current_node_explain.rb +70 -0
- data/lib/yoda/evaluation/evaluator.rb +103 -0
- data/lib/yoda/evaluation/signature_discovery.rb +83 -0
- data/lib/yoda/model.rb +12 -0
- data/lib/yoda/model/completion_item.rb +56 -0
- data/lib/yoda/model/descriptions.rb +10 -0
- data/lib/yoda/model/descriptions/base.rb +26 -0
- data/lib/yoda/model/descriptions/function_description.rb +40 -0
- data/lib/yoda/model/descriptions/value_description.rb +33 -0
- data/lib/yoda/model/descriptions/word_description.rb +32 -0
- data/lib/yoda/model/function_signatures.rb +13 -0
- data/lib/yoda/model/function_signatures/base.rb +68 -0
- data/lib/yoda/model/function_signatures/constructor.rb +70 -0
- data/lib/yoda/model/function_signatures/formatter.rb +82 -0
- data/lib/yoda/model/function_signatures/method.rb +67 -0
- data/lib/yoda/model/function_signatures/overload.rb +79 -0
- data/lib/yoda/model/function_signatures/parameter_list.rb +108 -0
- data/lib/yoda/model/function_signatures/type_builder.rb +101 -0
- data/lib/yoda/model/node_signature.rb +28 -0
- data/lib/yoda/model/path.rb +96 -0
- data/lib/yoda/model/scoped_path.rb +44 -0
- data/lib/yoda/model/types.rb +84 -0
- data/lib/yoda/model/types/any_type.rb +32 -0
- data/lib/yoda/model/types/base.rb +37 -0
- data/lib/yoda/model/types/duck_type.rb +41 -0
- data/lib/yoda/model/types/function_type.rb +174 -0
- data/lib/yoda/model/types/generic_type.rb +66 -0
- data/lib/yoda/model/types/instance_type.rb +42 -0
- data/lib/yoda/model/types/module_type.rb +42 -0
- data/lib/yoda/model/types/sequence_type.rb +53 -0
- data/lib/yoda/model/types/union_type.rb +56 -0
- data/lib/yoda/model/types/unknown_type.rb +40 -0
- data/lib/yoda/model/types/value_type.rb +58 -0
- data/lib/yoda/model/values.rb +9 -0
- data/lib/yoda/model/values/base.rb +32 -0
- data/lib/yoda/model/values/instance_value.rb +65 -0
- data/lib/yoda/model/values/module_value.rb +72 -0
- data/lib/yoda/parsing.rb +15 -0
- data/lib/yoda/parsing/ast_traversable.rb +18 -0
- data/lib/yoda/parsing/comment_tokenizer.rb +59 -0
- data/lib/yoda/parsing/location.rb +101 -0
- data/lib/yoda/parsing/node_objects.rb +10 -0
- data/lib/yoda/parsing/node_objects/const_node.rb +52 -0
- data/lib/yoda/parsing/node_objects/method_definition.rb +46 -0
- data/lib/yoda/parsing/node_objects/namespace.rb +104 -0
- data/lib/yoda/parsing/node_objects/send_node.rb +72 -0
- data/lib/yoda/parsing/parser.rb +27 -0
- data/lib/yoda/parsing/query.rb +11 -0
- data/lib/yoda/parsing/query/current_comment_query.rb +80 -0
- data/lib/yoda/parsing/query/current_comment_token_query.rb +153 -0
- data/lib/yoda/parsing/query/current_commenting_node_query.rb +68 -0
- data/lib/yoda/parsing/query/current_location_node_query.rb +51 -0
- data/lib/yoda/parsing/query/current_node_comment_query.rb +40 -0
- data/lib/yoda/parsing/range.rb +41 -0
- data/lib/yoda/parsing/scopes.rb +15 -0
- data/lib/yoda/parsing/scopes/base.rb +78 -0
- data/lib/yoda/parsing/scopes/builder.rb +60 -0
- data/lib/yoda/parsing/scopes/class_definition.rb +47 -0
- data/lib/yoda/parsing/scopes/meta_class_definition.rb +44 -0
- data/lib/yoda/parsing/scopes/meta_method_definition.rb +70 -0
- data/lib/yoda/parsing/scopes/method_definition.rb +69 -0
- data/lib/yoda/parsing/scopes/module_definition.rb +36 -0
- data/lib/yoda/parsing/scopes/root.rb +25 -0
- data/lib/yoda/parsing/source_analyzer.rb +59 -0
- data/lib/yoda/parsing/source_cutter.rb +231 -0
- data/lib/yoda/parsing/type_parser.rb +141 -0
- data/lib/yoda/runner.rb +6 -0
- data/lib/yoda/runner/infer.rb +50 -0
- data/lib/yoda/runner/setup.rb +26 -0
- data/lib/yoda/server.rb +191 -0
- data/lib/yoda/server/client_info.rb +98 -0
- data/lib/yoda/server/completion_provider.rb +78 -0
- data/lib/yoda/server/definition_provider.rb +36 -0
- data/lib/yoda/server/deserializer.rb +27 -0
- data/lib/yoda/server/hover_provider.rb +38 -0
- data/lib/yoda/server/signature_provider.rb +46 -0
- data/lib/yoda/store.rb +13 -0
- data/lib/yoda/store/actions.rb +10 -0
- data/lib/yoda/store/actions/import_core_library.rb +30 -0
- data/lib/yoda/store/actions/import_gems.rb +91 -0
- data/lib/yoda/store/actions/read_file.rb +36 -0
- data/lib/yoda/store/actions/read_project_files.rb +29 -0
- data/lib/yoda/store/adapters.rb +14 -0
- data/lib/yoda/store/adapters/base.rb +58 -0
- data/lib/yoda/store/adapters/leveldb_adapter.rb +80 -0
- data/lib/yoda/store/adapters/lmdb_adapter.rb +113 -0
- data/lib/yoda/store/objects.rb +46 -0
- data/lib/yoda/store/objects/addressable.rb +25 -0
- data/lib/yoda/store/objects/base.rb +116 -0
- data/lib/yoda/store/objects/class_object.rb +51 -0
- data/lib/yoda/store/objects/merger.rb +94 -0
- data/lib/yoda/store/objects/meta_class_object.rb +41 -0
- data/lib/yoda/store/objects/method_object.rb +94 -0
- data/lib/yoda/store/objects/module_object.rb +11 -0
- data/lib/yoda/store/objects/namespace_object.rb +67 -0
- data/lib/yoda/store/objects/overload.rb +51 -0
- data/lib/yoda/store/objects/patch.rb +46 -0
- data/lib/yoda/store/objects/patch_set.rb +80 -0
- data/lib/yoda/store/objects/tag.rb +62 -0
- data/lib/yoda/store/objects/value_object.rb +45 -0
- data/lib/yoda/store/project.rb +159 -0
- data/lib/yoda/store/query.rb +12 -0
- data/lib/yoda/store/query/associators.rb +10 -0
- data/lib/yoda/store/query/associators/associate_ancestors.rb +103 -0
- data/lib/yoda/store/query/associators/associate_methods.rb +38 -0
- data/lib/yoda/store/query/base.rb +16 -0
- data/lib/yoda/store/query/find_constant.rb +150 -0
- data/lib/yoda/store/query/find_meta_class.rb +18 -0
- data/lib/yoda/store/query/find_method.rb +74 -0
- data/lib/yoda/store/query/find_signature.rb +43 -0
- data/lib/yoda/store/registry.rb +67 -0
- data/lib/yoda/store/yard_importer.rb +260 -0
- data/lib/yoda/typing.rb +10 -0
- data/lib/yoda/typing/context.rb +96 -0
- data/lib/yoda/typing/environment.rb +35 -0
- data/lib/yoda/typing/evaluator.rb +256 -0
- data/lib/yoda/typing/lexical_scope.rb +26 -0
- data/lib/yoda/typing/relation.rb +15 -0
- data/lib/yoda/typing/traces.rb +9 -0
- data/lib/yoda/typing/traces/base.rb +26 -0
- data/lib/yoda/typing/traces/normal.rb +22 -0
- data/lib/yoda/typing/traces/send.rb +26 -0
- data/lib/yoda/version.rb +3 -0
- data/lib/yoda/yard_extensions.rb +11 -0
- data/lib/yoda/yard_extensions/sig_directive.rb +40 -0
- data/lib/yoda/yard_extensions/type_tag.rb +10 -0
- data/package.json +76 -0
- data/scripts/benchmark.rb +6 -0
- data/scripts/build_core_index.sh +16 -0
- data/yarn.lock +13 -0
- data/yoda-language-server.gemspec +40 -0
- metadata +424 -0
checksums.yaml
ADDED
@@ -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
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -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
|
data/LICENSE.txt
ADDED
@@ -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.
|
data/README.md
ADDED
@@ -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).
|
data/Rakefile
ADDED
data/bin/console
ADDED
@@ -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__)
|
data/bin/setup
ADDED
data/client/atom/main.js
ADDED
@@ -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,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,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!**
|