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