192 lines
5.4 KiB
Plaintext
192 lines
5.4 KiB
Plaintext
{
|
|
// Place your portainer workspace snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and
|
|
// description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope
|
|
// is left empty or omitted, the snippet gets applied to all languages. The prefix is what is
|
|
// used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
|
|
// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders.
|
|
// Placeholders with the same ids are connected.
|
|
// Example:
|
|
// "Print to console": {
|
|
// "scope": "javascript,typescript",
|
|
// "prefix": "log",
|
|
// "body": [
|
|
// "console.log('$1');",
|
|
// "$2"
|
|
// ],
|
|
// "description": "Log output to console"
|
|
// }
|
|
"React Named Export Component": {
|
|
"prefix": "rnec",
|
|
"body": [
|
|
"export function $TM_FILENAME_BASE() {",
|
|
" return <div>$TM_FILENAME_BASE</div>;",
|
|
"}"
|
|
],
|
|
"description": "React Named Export Component"
|
|
},
|
|
"Component": {
|
|
"scope": "javascript",
|
|
"prefix": "mycomponent",
|
|
"description": "Dummy Angularjs Component",
|
|
"body": [
|
|
"import angular from 'angular';",
|
|
"import controller from './${TM_FILENAME_BASE}Controller'",
|
|
"",
|
|
"angular.module('portainer.${TM_DIRECTORY/.*\\/app\\/([^\\/]*)(\\/.*)?$/$1/}').component('$TM_FILENAME_BASE', {",
|
|
" templateUrl: './$TM_FILENAME_BASE.html',",
|
|
" controller,",
|
|
"});",
|
|
""
|
|
]
|
|
},
|
|
"Controller": {
|
|
"scope": "javascript",
|
|
"prefix": "mycontroller",
|
|
"body": [
|
|
"class ${TM_FILENAME_BASE/(.*)/${1:/capitalize}/} {",
|
|
"\t/* @ngInject */",
|
|
"\tconstructor($0) {",
|
|
"\t}",
|
|
"}",
|
|
"",
|
|
"export default ${TM_FILENAME_BASE/(.*)/${1:/capitalize}/};"
|
|
],
|
|
"description": "Dummy ES6+ controller"
|
|
},
|
|
"Service": {
|
|
"scope": "javascript",
|
|
"prefix": "myservice",
|
|
"description": "Dummy ES6+ service",
|
|
"body": [
|
|
"import angular from 'angular';",
|
|
"import PortainerError from 'Portainer/error';",
|
|
"",
|
|
"class $1 {",
|
|
" /* @ngInject */",
|
|
" constructor(\\$async, $0) {",
|
|
" this.\\$async = \\$async;",
|
|
"",
|
|
" this.getAsync = this.getAsync.bind(this);",
|
|
" this.getAllAsync = this.getAllAsync.bind(this);",
|
|
" this.createAsync = this.createAsync.bind(this);",
|
|
" this.updateAsync = this.updateAsync.bind(this);",
|
|
" this.deleteAsync = this.deleteAsync.bind(this);",
|
|
" }",
|
|
"",
|
|
" /**",
|
|
" * GET",
|
|
" */",
|
|
" async getAsync() {",
|
|
" try {",
|
|
"",
|
|
" } catch (err) {",
|
|
" throw new PortainerError('', err);",
|
|
" }",
|
|
" }",
|
|
"",
|
|
" async getAllAsync() {",
|
|
" try {",
|
|
"",
|
|
" } catch (err) {",
|
|
" throw new PortainerError('', err);",
|
|
" }",
|
|
" }",
|
|
"",
|
|
" get() {",
|
|
" if () {",
|
|
" return this.\\$async(this.getAsync);",
|
|
" }",
|
|
" return this.\\$async(this.getAllAsync);",
|
|
" }",
|
|
"",
|
|
" /**",
|
|
" * CREATE",
|
|
" */",
|
|
" async createAsync() {",
|
|
" try {",
|
|
"",
|
|
" } catch (err) {",
|
|
" throw new PortainerError('', err);",
|
|
" }",
|
|
" }",
|
|
"",
|
|
" create() {",
|
|
" return this.\\$async(this.createAsync);",
|
|
" }",
|
|
"",
|
|
" /**",
|
|
" * UPDATE",
|
|
" */",
|
|
" async updateAsync() {",
|
|
" try {",
|
|
"",
|
|
" } catch (err) {",
|
|
" throw new PortainerError('', err);",
|
|
" }",
|
|
" }",
|
|
"",
|
|
" update() {",
|
|
" return this.\\$async(this.updateAsync);",
|
|
" }",
|
|
"",
|
|
" /**",
|
|
" * DELETE",
|
|
" */",
|
|
" async deleteAsync() {",
|
|
" try {",
|
|
"",
|
|
" } catch (err) {",
|
|
" throw new PortainerError('', err);",
|
|
" }",
|
|
" }",
|
|
"",
|
|
" delete() {",
|
|
" return this.\\$async(this.deleteAsync);",
|
|
" }",
|
|
"}",
|
|
"",
|
|
"export default $1;",
|
|
"angular.module('portainer.${TM_DIRECTORY/.*\\/app\\/([^\\/]*)(\\/.*)?$/$1/}').service('$1', $1);"
|
|
]
|
|
},
|
|
"swagger-api-doc": {
|
|
"prefix": "swapi",
|
|
"scope": "go",
|
|
"description": "Snippet for a api doc",
|
|
"body": [
|
|
"// @id ",
|
|
"// @summary ",
|
|
"// @description ",
|
|
"// @description **Access policy**: ",
|
|
"// @tags ",
|
|
"// @security ApiKeyAuth",
|
|
"// @security jwt",
|
|
"// @accept json",
|
|
"// @produce json",
|
|
"// @param id path int true \"identifier\"",
|
|
"// @param body body Object true \"details\"",
|
|
"// @success 200 {object} portainer. \"Success\"",
|
|
"// @success 204 \"Success\"",
|
|
"// @failure 400 \"Invalid request\"",
|
|
"// @failure 403 \"Permission denied\"",
|
|
"// @failure 404 \" not found\"",
|
|
"// @failure 500 \"Server error\"",
|
|
"// @router /{id} [get]"
|
|
]
|
|
},
|
|
"analytics": {
|
|
"prefix": "nlt",
|
|
"body": ["analytics-on", "analytics-category=\"$1\"", "analytics-event=\"$2\""],
|
|
"description": "analytics"
|
|
},
|
|
"analytics-if": {
|
|
"prefix": "nltf",
|
|
"body": ["analytics-if=\"$1\""],
|
|
"description": "analytics"
|
|
},
|
|
"analytics-metadata": {
|
|
"prefix": "nltm",
|
|
"body": "analytics-properties=\"{ metadata: { $1 } }\""
|
|
}
|
|
}
|