| 615 | return settings; | 615 | return settings; |
| 616 | } | 616 | } |
| 617 | | 617 | |
| | 618 | getCompletionPresetByName(name) { |
| | 619 | // Retrieve a completion preset by name |
| | 620 | let { presets, preset_names } = this.getPresetList(); |
| | 621 | let preset; |
| | 622 | |
| | 623 | // Some APIs use an array of names, others use an object of {name: index} |
| | 624 | if (Array.isArray(preset_names)) { // array of names |
| | 625 | if (!preset_names.includes(name)) { |
| | 626 | preset = undefined; |
| | 627 | } else { |
| | 628 | preset = presets[preset_names.indexOf(name)]; |
| | 629 | } |
| | 630 | } else { // object of {names: index} |
| | 631 | if (preset_names[name] === undefined) { |
| | 632 | preset = undefined; |
| | 633 | } else { |
| | 634 | preset = presets[preset_names[name]]; |
| | 635 | } |
| | 636 | } |
| | 637 | |
| | 638 | // if the preset isn't found, return null |
| | 639 | if (preset === undefined) { |
| | 640 | console.error(`Preset ${name} not found`); |
| | 641 | return; |
| | 642 | } |
| | 643 | return preset; |
| | 644 | } |
| | 645 | |
| 618 | // pass no arguments to delete current preset | 646 | // pass no arguments to delete current preset |
| 619 | async deletePreset(name) { | 647 | async deletePreset(name) { |
| 620 | const { preset_names, presets } = this.getPresetList(); | 648 | const { preset_names, presets } = this.getPresetList(); |