Skip to content

Commit 89b81fe

Browse files
author
Josh Dutterer
committed
added Better Title Case to transform multi-word variables. Example:
`"committed_datetime:{}".format(committed_datetime)` into `"Committed Datetime:{}".format(committed_datetime)` instead of `"Committed_datetime:{}".format(committed_datetime)`
1 parent 457da26 commit 89b81fe

7 files changed

+20
-0
lines changed

Default (Linux).sublime-keymap

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
[
2+
{ "keys": ["ctrl+alt+c", "ctrl+alt+t"], "command": "convert_to_better_title"},
23
{ "keys": ["ctrl+alt+c", "ctrl+alt+s"], "command": "convert_to_snake"},
34
{ "keys": ["ctrl+alt+c", "ctrl+alt+shift+s"], "command": "convert_to_screaming_snake"},
45
{ "keys": ["ctrl+alt+c", "ctrl+alt+c"], "command": "convert_to_camel"},

Default (OSX).sublime-keymap

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
[
2+
{ "keys": ["ctrl+alt+c", "ctrl+alt+t"], "command": "convert_to_better_title"},
23
{ "keys": ["ctrl+alt+c", "ctrl+alt+s"], "command": "convert_to_snake"},
34
{ "keys": ["ctrl+alt+c", "ctrl+alt+shift+s"], "command": "convert_to_screaming_snake"},
45
{ "keys": ["ctrl+alt+c", "ctrl+alt+c"], "command": "convert_to_camel"},

Default (Windows).sublime-keymap

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
[
2+
{ "keys": ["ctrl+alt+c", "ctrl+alt+t"], "command": "convert_to_better_title"},
23
{ "keys": ["ctrl+alt+c", "ctrl+alt+s"], "command": "convert_to_snake"},
34
{ "keys": ["ctrl+alt+c", "ctrl+alt+shift+s"], "command": "convert_to_screaming_snake"},
45
{ "keys": ["ctrl+alt+c", "ctrl+alt+c"], "command": "convert_to_camel"},

Default.sublime-commands

+4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
[
2+
{
3+
"caption": "Convert Case: Better Title Case",
4+
"command": "convert_to_better_title"
5+
},
26
{
37
"caption": "Convert Case: PascalCase",
48
"command": "convert_to_pascal"

Main.sublime-menu

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
"id": "convert_case",
88
"children":
99
[
10+
{ "command": "convert_to_better_title", "caption": "Better Title Case" },
1011
{ "command": "convert_to_snake", "caption": "snake_case" },
1112
{ "command": "convert_to_screaming_snake", "caption": "SCREAMING_SNAKE_CASE" },
1213
{ "command": "convert_to_camel", "caption": "camelCase" },

case_conversion.py

+10
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@
1616
SETTINGS_FILE = "CaseConversion.sublime-settings"
1717

1818

19+
def to_better_title(text, detectAcronyms, acronyms):
20+
words, case, sep = case_parse.parseVariable(text, detectAcronyms, acronyms)
21+
return ' '.join(words)
22+
23+
1924
def to_snake_case(text, detectAcronyms, acronyms):
2025
words, case, sep = case_parse.parseVariable(text, detectAcronyms, acronyms)
2126
return '_'.join([w.lower() for w in words])
@@ -94,6 +99,11 @@ def run_on_selections(view, edit, func):
9499
view.replace(edit, region, new_text)
95100

96101

102+
class ConvertToBetterTitleCommand(sublime_plugin.TextCommand):
103+
def run(self, edit):
104+
run_on_selections(self.view, edit, to_better_title)
105+
106+
97107
class ToggleSnakeCamelPascalCommand(sublime_plugin.TextCommand):
98108
def run(self, edit):
99109
run_on_selections(self.view, edit, toggle_case)

readme.md

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ Case Conversion is a plugin for Sublime Text. It converts the current word/token
33
camel, snake, screaming snake, dot, dash (hyphen), forward slash `/`, backslash `\` cases, and separated words.
44

55
## Keybindings
6+
- To Better Title Case: "ctrl+alt+c", "ctrl+alt+t"
67
- To snake_case: "ctrl+alt+c", "ctrl+alt+s"
78
- To SCREAMING_SNAKE_CASE: "ctrl+alt+c", "ctrl+alt+shift+s"
89
- To camelCase: "ctrl+alt+c", "ctrl+alt+c"
@@ -29,6 +30,7 @@ Clone this repository in to the Sublime Text "Packages" directory, which is loca
2930
- Curtis Gibby
3031
- Matt Morrison
3132
- Gavin Higham
33+
- Josh Dutterer
3234

3335
## License
3436
Copyright (C) 2012-2015 Davis Clark

0 commit comments

Comments
 (0)