Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"id": "text-tools",
"name": "Local Text Tools",
"version": "1.0.11",
"minAppVersion": "1.11.0",
"minAppVersion": "1.13.0",
"description": "Text manipulation commands: case conversion, line numbering, and more. Works with single and multiple selections.",
"author": "Nils Telleria",
"authorUrl": "https://github.com/nilsandrey",
Expand Down
12 changes: 6 additions & 6 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

161 changes: 75 additions & 86 deletions src/settings-tab.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { App, PluginSettingTab, Setting } from "obsidian";
import { App, PluginSettingTab, SettingDefinitionItem } from "obsidian";
import TextToolsPlugin from "../main";
import { TextToolsSettings } from "./settings";

export class TextToolsSettingTab extends PluginSettingTab {
plugin: TextToolsPlugin;
Expand All @@ -9,90 +10,78 @@ export class TextToolsSettingTab extends PluginSettingTab {
this.plugin = plugin;
}

display(): void {
const { containerEl } = this;
containerEl.empty();

// ------------------------------------------------------------------ //
// Line numbers
// ------------------------------------------------------------------ //
new Setting(containerEl).setName("Line numbers").setHeading();

new Setting(containerEl)
.setName("Separator")
.setDesc('String between the line number and the line text. Default: ". "')
.addText((t) =>
t
.setPlaceholder(". ")
.setValue(this.plugin.settings.lineNumberSeparator)
.onChange(async (v) => {
this.plugin.settings.lineNumberSeparator = v;
await this.plugin.saveSettings();
})
);

new Setting(containerEl)
.setName("Pad with leading zeros")
.setDesc("Align numbers with leading zeros (01, 02 … 10).")
.addToggle((t) =>
t
.setValue(this.plugin.settings.padLineNumbers)
.onChange(async (v) => {
this.plugin.settings.padLineNumbers = v;
await this.plugin.saveSettings();
})
);

// ------------------------------------------------------------------ //
// Filtering
// ------------------------------------------------------------------ //
new Setting(containerEl).setName("Filter lines").setHeading();

new Setting(containerEl)
.setName("Case-sensitive filtering")
.setDesc("When on, filter commands match case exactly.")
.addToggle((t) =>
t
.setValue(this.plugin.settings.caseSensitiveFiltering)
.onChange(async (v) => {
this.plugin.settings.caseSensitiveFiltering = v;
await this.plugin.saveSettings();
})
);

// ------------------------------------------------------------------ //
// GUIDs
// ------------------------------------------------------------------ //
new Setting(containerEl).setName("Guids").setHeading();

new Setting(containerEl)
.setName("Uppercase hex digits")
.setDesc("Insert guids using uppercase hex digits.")
.addToggle((t) =>
t
.setValue(this.plugin.settings.insertUppercaseGuids)
.onChange(async (v) => {
this.plugin.settings.insertUppercaseGuids = v;
await this.plugin.saveSettings();
})
);

// ------------------------------------------------------------------ //
// Padding
// ------------------------------------------------------------------ //
new Setting(containerEl).setName("Padding").setHeading();

new Setting(containerEl)
.setName("Default pad character")
.setDesc("Character used when padding lines (default: space).")
.addText((t) =>
t
.setPlaceholder(" ")
.setValue(this.plugin.settings.defaultPadString)
.onChange(async (v) => {
this.plugin.settings.defaultPadString = v || " ";
await this.plugin.saveSettings();
})
);
// Obsidian 1.13.0+ renders from these definitions, which also makes the
// settings appear in Obsidian's global settings search.
getSettingDefinitions(): SettingDefinitionItem<keyof TextToolsSettings>[] {
return [
{
type: "group",
heading: "Line numbers",
items: [
{
name: "Separator",
desc: 'String between the line number and the line text. Default: ". "',
control: {
type: "text",
key: "lineNumberSeparator",
placeholder: ". ",
},
},
{
name: "Pad with leading zeros",
desc: "Align numbers with leading zeros (01, 02 … 10).",
control: {
type: "toggle",
key: "padLineNumbers",
},
},
],
},
{
type: "group",
heading: "Filter lines",
items: [
{
name: "Case-sensitive filtering",
desc: "When on, filter commands match case exactly.",
control: {
type: "toggle",
key: "caseSensitiveFiltering",
},
},
],
},
{
type: "group",
heading: "Guids",
items: [
{
name: "Uppercase hex digits",
desc: "Insert guids using uppercase hex digits.",
control: {
type: "toggle",
key: "insertUppercaseGuids",
},
},
],
},
{
type: "group",
heading: "Padding",
items: [
{
name: "Default pad character",
desc: "Character used when padding lines (default: space).",
control: {
type: "text",
key: "defaultPadString",
placeholder: " ",
validate: (value: string) =>
value.length > 0 ? undefined : "Enter a pad character.",
Comment thread
nilsandrey marked this conversation as resolved.
},
},
],
},
];
}
}
Loading