ace-linters 0.11.2 → 0.11.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -19891,6 +19891,16 @@ class LanguageProvider {
19891
19891
  dispose() {
19892
19892
  // this.$messageController.dispose(this.$fileName);
19893
19893
  }
19894
+ /**
19895
+ * Removes document from all linked services by session id
19896
+ * @param session
19897
+ */ closeDocument(session, callback) {
19898
+ let sessionProvider = this.$getSessionLanguageProvider(session);
19899
+ if (sessionProvider) {
19900
+ sessionProvider.dispose(callback);
19901
+ delete this.$sessionLanguageProviders[session["id"]];
19902
+ }
19903
+ }
19894
19904
  constructor(messageController, options){
19895
19905
  var _this_options, _this_options1;
19896
19906
  language_provider_define_property(this, "activeEditor", void 0);
@@ -19954,6 +19964,9 @@ class SessionLanguageProvider {
19954
19964
  }
19955
19965
  this.$messageController.changeOptions(this.fileName, options);
19956
19966
  }
19967
+ dispose(callback) {
19968
+ this.$messageController.dispose(this.fileName, callback);
19969
+ }
19957
19970
  constructor(session, messageController, options){
19958
19971
  language_provider_define_property(this, "session", void 0);
19959
19972
  language_provider_define_property(this, "fileName", void 0);
@@ -19878,6 +19878,16 @@ class LanguageProvider {
19878
19878
  dispose() {
19879
19879
  // this.$messageController.dispose(this.$fileName);
19880
19880
  }
19881
+ /**
19882
+ * Removes document from all linked services by session id
19883
+ * @param session
19884
+ */ closeDocument(session, callback) {
19885
+ let sessionProvider = this.$getSessionLanguageProvider(session);
19886
+ if (sessionProvider) {
19887
+ sessionProvider.dispose(callback);
19888
+ delete this.$sessionLanguageProviders[session["id"]];
19889
+ }
19890
+ }
19881
19891
  constructor(messageController, options){
19882
19892
  var _this_options, _this_options1;
19883
19893
  language_provider_define_property(this, "activeEditor", void 0);
@@ -19941,6 +19951,9 @@ class SessionLanguageProvider {
19941
19951
  }
19942
19952
  this.$messageController.changeOptions(this.fileName, options);
19943
19953
  }
19954
+ dispose(callback) {
19955
+ this.$messageController.dispose(this.fileName, callback);
19956
+ }
19944
19957
  constructor(session, messageController, options){
19945
19958
  language_provider_define_property(this, "session", void 0);
19946
19959
  language_provider_define_property(this, "fileName", void 0);
@@ -508,6 +508,7 @@ class ServiceManager {
508
508
  break;
509
509
  case MessageType.dispose:
510
510
  this.removeDocument(documentIdentifier);
511
+ await doValidation(documentIdentifier, serviceInstances);
511
512
  break;
512
513
  case MessageType.globalOptions:
513
514
  this.setGlobalOptions(message.serviceName, message.options, message.merge);
@@ -235,6 +235,18 @@ export class LanguageProvider {
235
235
  dispose() {
236
236
  // this.$messageController.dispose(this.$fileName);
237
237
  }
238
+
239
+ /**
240
+ * Removes document from all linked services by session id
241
+ * @param session
242
+ */
243
+ closeDocument(session: Ace.EditSession, callback?) {
244
+ let sessionProvider = this.$getSessionLanguageProvider(session);
245
+ if (sessionProvider) {
246
+ sessionProvider.dispose(callback);
247
+ delete this.$sessionLanguageProviders[session["id"]];
248
+ }
249
+ }
238
250
  }
239
251
 
240
252
  class SessionLanguageProvider {
@@ -370,4 +382,8 @@ class SessionLanguageProvider {
370
382
  $applyDocumentHiglight = (documentHighlights) => {
371
383
  //TODO: place for your code
372
384
  };
385
+
386
+ dispose(callback?) {
387
+ this.$messageController.dispose(this.fileName, callback);
388
+ }
373
389
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ace-linters",
3
3
  "author": "Azat Alimov <mkslanc@gmail.com>",
4
- "version": "0.11.2",
4
+ "version": "0.11.3",
5
5
  "scripts": {
6
6
  "clean": "rimraf build",
7
7
  "build:yaml-language-server": "cd ../yaml-language-server-esbuild && npm run build",
@@ -116,6 +116,7 @@ export class ServiceManager {
116
116
  break;
117
117
  case MessageType.dispose:
118
118
  this.removeDocument(documentIdentifier);
119
+ await doValidation(documentIdentifier, serviceInstances);
119
120
  break;
120
121
  case MessageType.globalOptions:
121
122
  this.setGlobalOptions(message.serviceName, message.options, message.merge);
@@ -237,6 +237,22 @@ describe('LanguageProvider tests', () => {
237
237
  });
238
238
  })
239
239
 
240
+ it('should remove document from linked services', (done) => {
241
+ let $sessionIDToMode = manager["$sessionIDToMode"];
242
+ let name = editor.session["id"] +".html";
243
+ let htmlService = manager.getServicesInstances(name)[0];
244
+
245
+ expect(htmlService.documents[name]).exist;
246
+ expect($sessionIDToMode[name]).exist;
247
+
248
+ languageProvider.closeDocument(editor.session, () => {
249
+
250
+ expect(htmlService.documents[name]).not.exist;
251
+ expect($sessionIDToMode[name]).not.exist;
252
+ done()
253
+ });
254
+
255
+ })
240
256
 
241
257
  after(() => {
242
258
  client.removeAllListeners();