@@ -19,9 +19,21 @@ export interface FolderListItem extends vscode.QuickPickItem {
1919 label : string ;
2020}
2121
22+ export enum StorageOperation {
23+ Save = "save snippet" ,
24+ LoadDefault = "load default snippets" ,
25+ Delete = "delete" ,
26+ Rename = "rename" ,
27+ CreateFolder = "create folder" ,
28+ Move = "move" ,
29+ }
30+
2231export default class SnippetsStorage {
2332 public onSave ?: ( ) => void ;
24- public onBeforeSave ?: ( elements : TreeElement [ ] , operation ?: string ) => void ;
33+ public onBeforeSave ?: (
34+ elements : TreeElement [ ] ,
35+ operation ?: StorageOperation
36+ ) => void ;
2537 public onSnippetSave ?: ( snippet : TreeElement ) => void ;
2638 private readonly elements = new Map < string , TreeElement > ( ) ;
2739 private rootId = "" ;
@@ -108,12 +120,12 @@ export default class SnippetsStorage {
108120 1
109121 ) ;
110122
111- await this . save ( "delete" ) ;
123+ await this . save ( StorageOperation . Delete ) ;
112124 }
113125
114126 async renameElement ( id : string , newName : string ) : Promise < void > {
115127 this . getElement ( id ) . data . label = newName ;
116- await this . save ( "rename" ) ;
128+ await this . save ( StorageOperation . Rename ) ;
117129 }
118130
119131 async createFolder ( name : string , relativeToId ?: string ) : Promise < void > {
@@ -132,7 +144,7 @@ export default class SnippetsStorage {
132144 this . elements . set ( folder . id , { childIds : [ ] , data : folder , parentId } ) ;
133145 this . getElement ( parentId ) . childIds ?. push ( folder . id ) ;
134146
135- await this . save ( "create folder" ) ;
147+ await this . save ( StorageOperation . CreateFolder ) ;
136148 }
137149
138150 async moveElement ( sourceId : string , targetId ?: string ) : Promise < void > {
@@ -169,7 +181,7 @@ export default class SnippetsStorage {
169181 const newParentElement = this . getElement ( newParentId ) ;
170182 newParentElement . childIds ?. push ( sourceId ) ;
171183
172- await this . save ( "move" ) ;
184+ await this . save ( StorageOperation . Move ) ;
173185 }
174186
175187 async saveSnippet (
@@ -189,15 +201,15 @@ export default class SnippetsStorage {
189201 this . elements . set ( data . id , element ) ;
190202 this . getElement ( parentId ) . childIds ?. push ( data . id ) ;
191203
192- await this . save ( "save snippet" ) ;
204+ await this . save ( StorageOperation . Save ) ;
193205 this . onSnippetSave ?.( element ) ;
194206 }
195207
196208 getSnippet ( id : string ) : string {
197209 return this . getElement ( id ) . data . content ?. toString ( ) || "" ;
198210 }
199211
200- async save ( operation ?: string ) : Promise < void > {
212+ async save ( operation ?: StorageOperation ) : Promise < void > {
201213 const originalElements = JSON . parse (
202214 this . context . globalState . get ( this . storageKey ) || "[]"
203215 ) as TreeElement [ ] ;
@@ -265,7 +277,7 @@ export default class SnippetsStorage {
265277 parentId : exampleFolder . id ,
266278 } ) ;
267279
268- await this . save ( "load default snippets" ) ;
280+ await this . save ( StorageOperation . LoadDefault ) ;
269281 }
270282
271283 private serialize ( ) : string {
0 commit comments