diff --git a/src/Umbraco.Web.UI.Client/.gitignore b/src/Umbraco.Web.UI.Client/.gitignore index 95f1aa5caf..4e0b770e27 100644 --- a/src/Umbraco.Web.UI.Client/.gitignore +++ b/src/Umbraco.Web.UI.Client/.gitignore @@ -19,6 +19,7 @@ types # Editor directories and files .vscode/* !.vscode/extensions.json +!.vscode/*.code-snippets .idea .DS_Store *.suo diff --git a/src/Umbraco.Web.UI.Client/.vscode/lit.code-snippets b/src/Umbraco.Web.UI.Client/.vscode/lit.code-snippets new file mode 100644 index 0000000000..fd01fd2b4c --- /dev/null +++ b/src/Umbraco.Web.UI.Client/.vscode/lit.code-snippets @@ -0,0 +1,27 @@ +{ + "Create Lit Component": { + "prefix": "lit new", + "scope": "typescript", + "body": [ + "import { UUITextStyles } from '@umbraco-ui/uui-css';", + "import { css, html, LitElement } from 'lit';", + "import { customElement } from 'lit/decorators.js';", + "", + "@customElement('umb-${TM_FILENAME_BASE/(.*)\\..+$/$1/}')", + "export class Umb${TM_FILENAME_BASE/(.*)\\..+$/${1:/pascalcase}/}Element extends LitElement {", + "\tstatic styles = [UUITextStyles, css``];", + "", + "\trender() {", + "\t\treturn html`${0:umb-${TM_FILENAME_BASE/(.*)\\..+$/$1/}}`;", + "\t}", + "}", + "", + "declare global {", + "\tinterface HTMLElementTagNameMap {", + "\t\t'umb-${TM_FILENAME_BASE/(.*)\\..+$/$1/}': Umb${TM_FILENAME_BASE/(.*)\\..+$/${1:/pascalcase}/}Element;", + "\t}", + "}" + ], + "description": "Create a new Lit Component" + } +}