config.js 1018 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. const { CompositeDisposable, Emitter } = require('atom');
  2. const Config = {
  3. activate() {
  4. if (this.activated) return;
  5. this.emitter ??= new Emitter();
  6. this.subscriptions = new CompositeDisposable();
  7. this.subscriptions.add(
  8. atom.config.onDidChange('symbols-view', config => {
  9. this.emitter.emit('did-change-config', config);
  10. })
  11. );
  12. this.activated = true;
  13. },
  14. deactivate() {
  15. this.activated = false;
  16. this.subscriptions?.dispose();
  17. },
  18. getForEditor(editor, key) {
  19. let grammar = editor.getGrammar();
  20. return atom.config.get(`symbols-view.${key}`, { scope: [grammar?.scopeName] });
  21. },
  22. get(key) {
  23. return atom.config.get(`symbols-view.${key}`);
  24. },
  25. set(key, value) {
  26. return atom.config.set(`symbols-view.${key}`, value);
  27. },
  28. observe(key, callback) {
  29. return atom.config.observe(`symbols-view.${key}`, callback);
  30. },
  31. onDidChange(callback) {
  32. return this.emitter.on('did-change-config', callback);
  33. }
  34. };
  35. module.exports = Config;