Generate Extension Skeleton
This commit is contained in:
		
							parent
							
								
									01b580768b
								
							
						
					
					
						commit
						4bd8c9eddf
					
				
					 14 changed files with 2958 additions and 0 deletions
				
			
		
							
								
								
									
										4
									
								
								.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,4 @@ | ||||||
|  | out | ||||||
|  | node_modules | ||||||
|  | .vscode-test/ | ||||||
|  | .vsix | ||||||
							
								
								
									
										28
									
								
								.vscode/launch.json
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								.vscode/launch.json
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,28 @@ | ||||||
|  | // A launch configuration that compiles the extension and then opens it inside a new window | ||||||
|  | { | ||||||
|  |     "version": "0.1.0", | ||||||
|  |     "configurations": [ | ||||||
|  |         { | ||||||
|  |             "name": "Extension", | ||||||
|  |             "type": "extensionHost", | ||||||
|  |             "request": "launch", | ||||||
|  |             "runtimeExecutable": "${execPath}", | ||||||
|  |             "args": ["--extensionDevelopmentPath=${workspaceRoot}" ], | ||||||
|  |             "stopOnEntry": false, | ||||||
|  |             "sourceMaps": true, | ||||||
|  |             "outFiles": [ "${workspaceRoot}/out/**/*.js" ], | ||||||
|  |             "preLaunchTask": "npm: watch" | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |             "name": "Extension Tests", | ||||||
|  |             "type": "extensionHost", | ||||||
|  |             "request": "launch", | ||||||
|  |             "runtimeExecutable": "${execPath}", | ||||||
|  |             "args": ["--extensionDevelopmentPath=${workspaceRoot}", "--extensionTestsPath=${workspaceRoot}/out/test" ], | ||||||
|  |             "stopOnEntry": false, | ||||||
|  |             "sourceMaps": true, | ||||||
|  |             "outFiles": [ "${workspaceRoot}/out/test/**/*.js" ], | ||||||
|  |             "preLaunchTask": "npm: watch" | ||||||
|  |         } | ||||||
|  |     ] | ||||||
|  | } | ||||||
							
								
								
									
										9
									
								
								.vscode/settings.json
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								.vscode/settings.json
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,9 @@ | ||||||
|  | // Place your settings in this file to overwrite default and user settings. | ||||||
|  | { | ||||||
|  |     "files.exclude": { | ||||||
|  |         "out": false // set this to true to hide the "out" folder with the compiled JS files | ||||||
|  |     }, | ||||||
|  |     "search.exclude": { | ||||||
|  |         "out": true // set this to false to include "out" folder in search results | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										20
									
								
								.vscode/tasks.json
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								.vscode/tasks.json
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,20 @@ | ||||||
|  | // See https://go.microsoft.com/fwlink/?LinkId=733558 | ||||||
|  | // for the documentation about the tasks.json format | ||||||
|  | { | ||||||
|  |     "version": "2.0.0", | ||||||
|  |     "tasks": [ | ||||||
|  |         { | ||||||
|  |             "type": "npm", | ||||||
|  |             "script": "watch", | ||||||
|  |             "problemMatcher": "$tsc-watch", | ||||||
|  |             "isBackground": true, | ||||||
|  |             "presentation": { | ||||||
|  |                 "reveal": "never" | ||||||
|  |             }, | ||||||
|  |             "group": { | ||||||
|  |                 "kind": "build", | ||||||
|  |                 "isDefault": true | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     ] | ||||||
|  | } | ||||||
							
								
								
									
										8
									
								
								.vscodeignore
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								.vscodeignore
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,8 @@ | ||||||
|  | .vscode/** | ||||||
|  | .vscode-test/** | ||||||
|  | out/test/** | ||||||
|  | out/**/*.map | ||||||
|  | src/** | ||||||
|  | .gitignore | ||||||
|  | tsconfig.json | ||||||
|  | vsc-extension-quickstart.md | ||||||
							
								
								
									
										7
									
								
								CHANGELOG.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								CHANGELOG.md
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,7 @@ | ||||||
|  | # Change Log | ||||||
|  | All notable changes to the "xml" extension will be documented in this file. | ||||||
|  | 
 | ||||||
|  | Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file. | ||||||
|  | 
 | ||||||
|  | ## [Unreleased] | ||||||
|  | - Initial release | ||||||
							
								
								
									
										65
									
								
								README.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								README.md
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,65 @@ | ||||||
|  | # xml README | ||||||
|  | 
 | ||||||
|  | This is the README for your extension "xml". After writing up a brief description, we recommend including the following sections. | ||||||
|  | 
 | ||||||
|  | ## Features | ||||||
|  | 
 | ||||||
|  | Describe specific features of your extension including screenshots of your extension in action. Image paths are relative to this README file. | ||||||
|  | 
 | ||||||
|  | For example if there is an image subfolder under your extension project workspace: | ||||||
|  | 
 | ||||||
|  | \!\[feature X\]\(images/feature-x.png\) | ||||||
|  | 
 | ||||||
|  | > 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. | ||||||
|  | 
 | ||||||
|  | ## Requirements | ||||||
|  | 
 | ||||||
|  | If you have any requirements or dependencies, add a section describing those and how to install and configure them. | ||||||
|  | 
 | ||||||
|  | ## Extension Settings | ||||||
|  | 
 | ||||||
|  | Include if your extension adds any VS Code settings through the `contributes.configuration` extension point. | ||||||
|  | 
 | ||||||
|  | For example: | ||||||
|  | 
 | ||||||
|  | This extension contributes the following settings: | ||||||
|  | 
 | ||||||
|  | * `myExtension.enable`: enable/disable this extension | ||||||
|  | * `myExtension.thing`: set to `blah` to do something | ||||||
|  | 
 | ||||||
|  | ## Known Issues | ||||||
|  | 
 | ||||||
|  | Calling out known issues can help limit users opening duplicate issues against your extension. | ||||||
|  | 
 | ||||||
|  | ## Release Notes | ||||||
|  | 
 | ||||||
|  | Users appreciate release notes as you update your extension. | ||||||
|  | 
 | ||||||
|  | ### 1.0.0 | ||||||
|  | 
 | ||||||
|  | Initial release of ... | ||||||
|  | 
 | ||||||
|  | ### 1.0.1 | ||||||
|  | 
 | ||||||
|  | Fixed issue #. | ||||||
|  | 
 | ||||||
|  | ### 1.1.0 | ||||||
|  | 
 | ||||||
|  | Added features X, Y, and Z. | ||||||
|  | 
 | ||||||
|  | ----------------------------------------------------------------------------------------------------------- | ||||||
|  | 
 | ||||||
|  | ## Working with Markdown | ||||||
|  | 
 | ||||||
|  | **Note:** You can author your README using Visual Studio Code.  Here are some useful editor keyboard shortcuts: | ||||||
|  | 
 | ||||||
|  | * Split the editor (`Cmd+\` on OSX or `Ctrl+\` on Windows and Linux) | ||||||
|  | * Toggle preview (`Shift+CMD+V` on OSX or `Shift+Ctrl+V` on Windows and Linux) | ||||||
|  | * Press `Ctrl+Space` (Windows, Linux) or `Cmd+Space` (OSX) to see a list of Markdown snippets | ||||||
|  | 
 | ||||||
|  | ### For more information | ||||||
|  | 
 | ||||||
|  | * [Visual Studio Code's Markdown Support](http://code.visualstudio.com/docs/languages/markdown) | ||||||
|  | * [Markdown Syntax Reference](https://help.github.com/articles/markdown-basics/) | ||||||
|  | 
 | ||||||
|  | **Enjoy!** | ||||||
							
								
								
									
										2657
									
								
								package-lock.json
									
										
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										2657
									
								
								package-lock.json
									
										
									
										generated
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										38
									
								
								package.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								package.json
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,38 @@ | ||||||
|  | { | ||||||
|  |     "name": "xml", | ||||||
|  |     "displayName": "XML Tools", | ||||||
|  |     "description": "XML Formatting, XQuery, and XPath Tools for Visual Studio Code", | ||||||
|  |     "version": "0.0.1", | ||||||
|  |     "publisher": "DotJoshJohnson", | ||||||
|  |     "engines": { | ||||||
|  |         "vscode": "^1.19.0" | ||||||
|  |     }, | ||||||
|  |     "categories": [ | ||||||
|  |         "Other" | ||||||
|  |     ], | ||||||
|  |     "activationEvents": [ | ||||||
|  |         "onCommand:extension.sayHello" | ||||||
|  |     ], | ||||||
|  |     "main": "./out/extension", | ||||||
|  |     "contributes": { | ||||||
|  |         "commands": [ | ||||||
|  |             { | ||||||
|  |                 "command": "extension.sayHello", | ||||||
|  |                 "title": "Hello World" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     "scripts": { | ||||||
|  |         "vscode:prepublish": "npm run compile", | ||||||
|  |         "compile": "tsc -p ./", | ||||||
|  |         "watch": "tsc -watch -p ./", | ||||||
|  |         "postinstall": "node ./node_modules/vscode/bin/install", | ||||||
|  |         "test": "npm run compile && node ./node_modules/vscode/bin/test" | ||||||
|  |     }, | ||||||
|  |     "devDependencies": { | ||||||
|  |         "typescript": "^2.6.1", | ||||||
|  |         "vscode": "^1.1.6", | ||||||
|  |         "@types/node": "^7.0.43", | ||||||
|  |         "@types/mocha": "^2.2.42" | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										29
									
								
								src/extension.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								src/extension.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,29 @@ | ||||||
|  | 'use strict'; | ||||||
|  | // The module 'vscode' contains the VS Code extensibility API
 | ||||||
|  | // Import the module and reference it with the alias vscode in your code below
 | ||||||
|  | import * as vscode from 'vscode'; | ||||||
|  | 
 | ||||||
|  | // this method is called when your extension is activated
 | ||||||
|  | // your extension is activated the very first time the command is executed
 | ||||||
|  | export function activate(context: vscode.ExtensionContext) { | ||||||
|  | 
 | ||||||
|  |     // Use the console to output diagnostic information (console.log) and errors (console.error)
 | ||||||
|  |     // This line of code will only be executed once when your extension is activated
 | ||||||
|  |     console.log('Congratulations, your extension "xml" is now active!'); | ||||||
|  | 
 | ||||||
|  |     // The command has been defined in the package.json file
 | ||||||
|  |     // Now provide the implementation of the command with  registerCommand
 | ||||||
|  |     // The commandId parameter must match the command field in package.json
 | ||||||
|  |     let disposable = vscode.commands.registerCommand('extension.sayHello', () => { | ||||||
|  |         // The code you place here will be executed every time your command is executed
 | ||||||
|  | 
 | ||||||
|  |         // Display a message box to the user
 | ||||||
|  |         vscode.window.showInformationMessage('Hello World!'); | ||||||
|  |     }); | ||||||
|  | 
 | ||||||
|  |     context.subscriptions.push(disposable); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // this method is called when your extension is deactivated
 | ||||||
|  | export function deactivate() { | ||||||
|  | } | ||||||
							
								
								
									
										22
									
								
								src/test/extension.test.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/test/extension.test.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,22 @@ | ||||||
|  | //
 | ||||||
|  | // Note: This example test is leveraging the Mocha test framework.
 | ||||||
|  | // Please refer to their documentation on https://mochajs.org/ for help.
 | ||||||
|  | //
 | ||||||
|  | 
 | ||||||
|  | // The module 'assert' provides assertion methods from node
 | ||||||
|  | import * as assert from 'assert'; | ||||||
|  | 
 | ||||||
|  | // You can import and use all API from the 'vscode' module
 | ||||||
|  | // as well as import your extension to test it
 | ||||||
|  | import * as vscode from 'vscode'; | ||||||
|  | import * as myExtension from '../extension'; | ||||||
|  | 
 | ||||||
|  | // Defines a Mocha test suite to group tests of similar kind together
 | ||||||
|  | suite("Extension Tests", () => { | ||||||
|  | 
 | ||||||
|  |     // Defines a Mocha unit test
 | ||||||
|  |     test("Something 1", () => { | ||||||
|  |         assert.equal(-1, [1, 2, 3].indexOf(5)); | ||||||
|  |         assert.equal(-1, [1, 2, 3].indexOf(0)); | ||||||
|  |     }); | ||||||
|  | }); | ||||||
							
								
								
									
										22
									
								
								src/test/index.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/test/index.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,22 @@ | ||||||
|  | //
 | ||||||
|  | // PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING
 | ||||||
|  | //
 | ||||||
|  | // This file is providing the test runner to use when running extension tests.
 | ||||||
|  | // By default the test runner in use is Mocha based.
 | ||||||
|  | //
 | ||||||
|  | // You can provide your own test runner if you want to override it by exporting
 | ||||||
|  | // a function run(testRoot: string, clb: (error:Error) => void) that the extension
 | ||||||
|  | // host can call to run the tests. The test runner is expected to use console.log
 | ||||||
|  | // to report the results back to the caller. When the tests are finished, return
 | ||||||
|  | // a possible error to the callback or null if none.
 | ||||||
|  | 
 | ||||||
|  | import * as testRunner from 'vscode/lib/testrunner'; | ||||||
|  | 
 | ||||||
|  | // You can directly control Mocha options by uncommenting the following lines
 | ||||||
|  | // See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info
 | ||||||
|  | testRunner.configure({ | ||||||
|  |     ui: 'tdd', 		// the TDD UI is being used in extension.test.ts (suite, test, etc.)
 | ||||||
|  |     useColors: true // colored output from test results
 | ||||||
|  | }); | ||||||
|  | 
 | ||||||
|  | module.exports = testRunner; | ||||||
							
								
								
									
										16
									
								
								tsconfig.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								tsconfig.json
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,16 @@ | ||||||
|  | { | ||||||
|  |     "compilerOptions": { | ||||||
|  |         "module": "commonjs", | ||||||
|  |         "target": "es6", | ||||||
|  |         "outDir": "out", | ||||||
|  |         "lib": [ | ||||||
|  |             "es6" | ||||||
|  |         ], | ||||||
|  |         "sourceMap": true, | ||||||
|  |         "rootDir": "src" | ||||||
|  |     }, | ||||||
|  |     "exclude": [ | ||||||
|  |         "node_modules", | ||||||
|  |         ".vscode-test" | ||||||
|  |     ] | ||||||
|  | } | ||||||
							
								
								
									
										33
									
								
								vsc-extension-quickstart.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								vsc-extension-quickstart.md
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,33 @@ | ||||||
|  | # Welcome to your VS Code Extension | ||||||
|  | 
 | ||||||
|  | ## What's in the folder | ||||||
|  | * This folder contains all of the files necessary for your extension. | ||||||
|  | * `package.json` - this is the manifest file in which you declare your extension and command. | ||||||
|  | The sample plugin registers a command and defines its title and command name. With this information | ||||||
|  | VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. | ||||||
|  | * `src/extension.ts` - this is the main file where you will provide the implementation of your command. | ||||||
|  | The file exports one function, `activate`, which is called the very first time your extension is | ||||||
|  | activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. | ||||||
|  | We pass the function containing the implementation of the command as the second parameter to | ||||||
|  | `registerCommand`. | ||||||
|  | 
 | ||||||
|  | ## Get up and running straight away | ||||||
|  | * Press `F5` to open a new window with your extension loaded. | ||||||
|  | * Run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World`. | ||||||
|  | * Set breakpoints in your code inside `src/extension.ts` to debug your extension. | ||||||
|  | * Find output from your extension in the debug console. | ||||||
|  | 
 | ||||||
|  | ## Make changes | ||||||
|  | * You can relaunch the extension from the debug toolbar after changing code in `src/extension.ts`. | ||||||
|  | * You can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes. | ||||||
|  | 
 | ||||||
|  | ## Explore the API | ||||||
|  | * You can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts`. | ||||||
|  | 
 | ||||||
|  | ## Run tests | ||||||
|  | * Open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests`. | ||||||
|  | * Press `F5` to run the tests in a new window with your extension loaded. | ||||||
|  | * See the output of the test result in the debug console. | ||||||
|  | * Make changes to `test/extension.test.ts` or create new test files inside the `test` folder. | ||||||
|  |     * By convention, the test runner will only consider files matching the name pattern `**.test.ts`. | ||||||
|  |     * You can create folders inside the `test` folder to structure your tests any way you want. | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue