{ "[Moodle] Component class": { "scope": "typescript", "prefix": "macomponent", "body": [ "import { Component } from '@angular/core';", "", "@Component({", " selector: '$2${TM_FILENAME_BASE}',", " templateUrl: '${TM_FILENAME_BASE}.html',", "})", "export class ${1:${TM_FILENAME_BASE}}Component {", "", " $0", "", "}", "" ], "description": "[Moodle] Create a Component class" }, "[Moodle] Page class": { "scope": "typescript", "prefix": "mapage", "body": [ "import { Component } from '@angular/core';", "", "@Component({", " selector: 'page-$2${TM_FILENAME_BASE}',", " templateUrl: '${TM_FILENAME_BASE}.html',", "})", "export class ${1:${TM_FILENAME_BASE}}Page {", "", " $0", "", "}", "" ], "description": "[Moodle] Create a Page class" }, "[Moodle] Module class": { "scope": "typescript", "prefix": "mamodule", "body": [ "import { NgModule } from '@angular/core';", "", "@NgModule({", " $0", "})", "export class ${1}Module {}", "" ], "description": "[Moodle] Create a Module class" }, "[Moodle] Lazy Module class": { "scope": "typescript", "prefix": "malazymodule", "body": [ "import { NgModule } from '@angular/core';", "import { RouterModule, Routes } from '@angular/router';", "", "const routes: Routes = [", " $0", "];", "", "@NgModule({", " imports: [", " RouterModule.forChild(routes),", " ],", "})", "export class ${1}LazyModule {}", "" ], "description": "[Moodle] Create a Lazy Module class" }, "[Moodle] Service Singleton": { "scope": "typescript", "prefix": "massingleton", "body": [ "import { Injectable } from '@angular/core';", "import { makeSingleton } from '@singletons';", "", "/**", " * $2.", " */", "@Injectable({ providedIn: 'root' })", "export class ${1:${TM_FILENAME_BASE}}Service {", "", " $0", "", "}", "", "export const ${1:${TM_FILENAME_BASE}} = makeSingleton(${1:${TM_FILENAME_BASE}}Service);", "" ], "description": "[Moodle] Create a Service Singleton" }, "[Moodle] Singleton": { "scope": "typescript", "prefix": "masingleton", "body": [ "/**", " * Singleton$2.", " */", "export class ${1:${TM_FILENAME_BASE}} {", "", " $0", "", "}", "" ], "description": "[Moodle] Create a Pure Singleton" }, "[Moodle] Events": { "prefix": "maeventsdeclaration", "body": [ "declare module '@singletons/events' {", "", " /**", " * Augment CoreEventsData interface with events specific to this service.", " *", " * @see https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation", " */", " export interface CoreEventsData {", " [$1]: $2;", " }", "", "}" ], "description": "" }, "Innherit doc": { "prefix": "inheritdoc", "body": [ "/**", " * @inheritdoc", " */" ], "description": "Add @inheritdoc documentation block" } }