diff --git a/manifest.json b/manifest.json index 91a4dad..b420903 100644 --- a/manifest.json +++ b/manifest.json @@ -3,8 +3,8 @@ "name": "Toggle Case", "version": "1.1.0", "minAppVersion": "0.15.0", - "description": "This is an Obsidian plugin to toggle between `lowercase` `UPPERCASE` and `Title Case`", + "description": "This is an Obsidian plugin to toggle between `lowercase`, `UPPERCASE`, `Title Case` and `Sentence case`", "author": "automattech", "authorUrl": "https://github.com/MatthewAlner/obsidian-toggle-case", "isDesktopOnly": false -} \ No newline at end of file +} diff --git a/src/main.ts b/src/main.ts index 62f5d9f..aff7a1d 100644 --- a/src/main.ts +++ b/src/main.ts @@ -83,7 +83,9 @@ export default class ToggleCasePlugin extends Plugin { }) .join('') } - + private toSentenceCase(selectedText: string) { + return selectedText.charAt(0).toUpperCase() + selectedText.slice(1).toLowerCase(); + } private getNextCase(selectedText: string, index: number): string { let textToCheck: string = selectedText; @@ -98,6 +100,7 @@ export default class ToggleCasePlugin extends Plugin { const checkTextUpper = textToCheck.toUpperCase(); const checkTextLower = textToCheck.toLowerCase(); const checkTextTitle = this.toTitleCase(textToCheck); + const checkTextSentence = this.toSentenceCase(textToCheck); switch(textToCheck) { case checkTextUpper: { @@ -107,6 +110,9 @@ export default class ToggleCasePlugin extends Plugin { return this.toTitleCase(selectedText); } case checkTextTitle: { + return this.toSentenceCase(selectedText); + } + case checkTextSentence: { return selectedText.toUpperCase(); } default: {