mirror of
https://github.com/tekknoman/obsidian-prio-plugin.git
synced 2026-07-22 07:30:23 +00:00
fix(prio): improving prio type
This commit is contained in:
parent
556b40a5b2
commit
b26d2c0681
4 changed files with 38 additions and 37 deletions
38
main.ts
38
main.ts
|
|
@ -1,4 +1,4 @@
|
|||
import {App, Editor, MarkdownView, Modal, Notice, Plugin, PluginSettingTab, Setting} from 'obsidian';
|
||||
import {App, Editor, MarkdownView, Modal, Notice, Plugin} from 'obsidian';
|
||||
import {PrioPluginSettings} from "./utils/Settings";
|
||||
import {SettingTab} from "./utils/SettingTab";
|
||||
import {decreasePrio, increasePrio, removePrio, setPrio} from "./utils/Priority";
|
||||
|
|
@ -6,28 +6,28 @@ import {decreasePrio, increasePrio, removePrio, setPrio} from "./utils/Priority"
|
|||
|
||||
const DEFAULT_SETTINGS: PrioPluginSettings = {
|
||||
selectedPreset: 'default',
|
||||
levels: ['1', '2', '3', '4', '5', '6'],
|
||||
levelAliases: {
|
||||
'1': 'Major',
|
||||
'2': 'Minor',
|
||||
'3': 'Trivial',
|
||||
'4': 'Cosmetic',
|
||||
'5': 'Enhancement',
|
||||
'6': 'Bug'
|
||||
},
|
||||
levels: 6,
|
||||
levelAliases: [
|
||||
'Major',
|
||||
'Minor',
|
||||
'Trivial',
|
||||
'Cosmetic',
|
||||
'Enhancement',
|
||||
'Bug'
|
||||
],
|
||||
presets: [{
|
||||
id: 'default',
|
||||
name: 'Default',
|
||||
settings: {
|
||||
levels: ['1', '2', '3', '4', '5', '6'],
|
||||
levelAliases: {
|
||||
'1': 'Major',
|
||||
'2': 'Minor',
|
||||
'3': 'Trivial',
|
||||
'4': 'Cosmetic',
|
||||
'5': 'Enhancement',
|
||||
'6': 'Bug'
|
||||
},
|
||||
levels: 6,
|
||||
levelAliases: [
|
||||
'Major',
|
||||
'Minor',
|
||||
'Trivial',
|
||||
'Cosmetic',
|
||||
'Enhancement',
|
||||
'Bug'
|
||||
],
|
||||
}
|
||||
}]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,9 +7,8 @@ export const setPrio = (editor: Editor, view: MarkdownView, settings: PrioPlugin
|
|||
}
|
||||
const cursor = editor.getCursor();
|
||||
const line = editor.getLine(cursor.line);
|
||||
const levels = settings.levels;
|
||||
const levelAliases = settings.levelAliases;
|
||||
const level = levels[Math.round((levels.length - 1) / 2)];
|
||||
const level = Math.round(settings.levels/2);
|
||||
const levelAlias = levelAliases[level];
|
||||
const newLine = `${line} #${levelAlias}`;
|
||||
editor.replaceRange(newLine, {line: cursor.line, ch: 0}, {line: cursor.line, ch: line.length});
|
||||
|
|
@ -22,7 +21,7 @@ export const increasePrio = (editor: Editor, view: MarkdownView, settings: PrioP
|
|||
setPrio(editor, view, settings);
|
||||
return;
|
||||
}
|
||||
const currentLevelIndex = getLevelIndex(editor, view, settings, currentPrio);
|
||||
const currentLevelIndex = settings.levelAliases.indexOf(currentPrio);
|
||||
replacePrio(editor, view, settings, currentLevelIndex - 1 < 0 ? 0 : currentLevelIndex - 1);
|
||||
|
||||
}
|
||||
|
|
@ -33,9 +32,8 @@ export const decreasePrio = (editor: Editor, view: MarkdownView, settings: PrioP
|
|||
setPrio(editor, view, settings);
|
||||
return;
|
||||
}
|
||||
const currentLevelIndex = getLevelIndex(editor, view, settings, currentPrio);
|
||||
const levels = settings.levels;
|
||||
replacePrio(editor, view, settings, currentLevelIndex + 1 > levels.length - 1 ? levels.length - 1 : currentLevelIndex + 1);
|
||||
const currentLevelIndex = settings.levelAliases.indexOf(currentPrio);
|
||||
replacePrio(editor, view, settings, currentLevelIndex + 1 > settings.levels - 1 ? settings.levels - 1 : currentLevelIndex + 1);
|
||||
}
|
||||
|
||||
export const removePrio = (editor: Editor, view: MarkdownView, settings: PrioPluginSettings) => {
|
||||
|
|
@ -46,19 +44,10 @@ export const removePrio = (editor: Editor, view: MarkdownView, settings: PrioPlu
|
|||
view.editor.focus();
|
||||
}
|
||||
|
||||
export const getLevelIndex = (editor: Editor, view: MarkdownView, settings: PrioPluginSettings, prio: string) => {
|
||||
const levels = settings.levels;
|
||||
const levelAliases = settings.levelAliases;
|
||||
const currentLevel = levels.find(level => levelAliases[level] === prio);
|
||||
return levels.indexOf(currentLevel as string);
|
||||
}
|
||||
|
||||
export const replacePrio = (editor: Editor, view: MarkdownView, settings: PrioPluginSettings, levelIndex: number) => {
|
||||
export const replacePrio = (editor: Editor, view: MarkdownView, settings: PrioPluginSettings, level: number) => {
|
||||
const cursor = editor.getCursor();
|
||||
const line = editor.getLine(cursor.line);
|
||||
const levels = settings.levels;
|
||||
const levelAliases = settings.levelAliases;
|
||||
const level = levels[levelIndex];
|
||||
const levelAlias = levelAliases[level];
|
||||
const newLine = line.replace(`#${getPrio(editor, view, settings)}`, `#${levelAlias}`);
|
||||
editor.replaceRange(newLine, {line: cursor.line, ch: 0}, {line: cursor.line, ch: line.length});
|
||||
|
|
|
|||
|
|
@ -33,6 +33,18 @@ export class SettingTab extends PluginSettingTab {
|
|||
});
|
||||
});
|
||||
}
|
||||
new Setting(containerEl)
|
||||
.setName('Levels')
|
||||
.setDesc('Set the priority levels to use.')
|
||||
.addSlider((slider) => {
|
||||
slider
|
||||
.setLimits(1, 10, 1)
|
||||
.setValue(this.plugin.settings.levels)
|
||||
.onChange(async (value) => {
|
||||
this.plugin.settings.levels = value;
|
||||
});
|
||||
});
|
||||
|
||||
const presetList = createEl('ol', {
|
||||
cls: 'preset-list',
|
||||
parent: containerEl
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import {Preset} from "./Presets";
|
|||
|
||||
export interface PrioPluginSettings {
|
||||
selectedPreset?: string;
|
||||
levels: string[];
|
||||
levelAliases: Record<string, string>;
|
||||
levels: number;
|
||||
levelAliases: string[];
|
||||
presets?: Preset[];
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue