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