Skip to content

Commit e9996f7

Browse files
committed
fix camel_to_underscore
1 parent 061f0cc commit e9996f7

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

pyls/_utils.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -202,4 +202,5 @@ def is_process_alive(pid):
202202

203203

204204
def camel_to_underscore(camelcase):
205-
return re.sub('([A-Z]+)', r'_\1', camelcase).lower()
205+
s1 = re.sub('([^_])([A-Z][a-z]+)', r'\1_\2', camelcase)
206+
return re.sub('([a-z0-9])([A-Z])', r'\1_\2', s1).lower()

test/test_utils.py

+6
Original file line numberDiff line numberDiff line change
@@ -93,3 +93,9 @@ def test_camel_to_underscore():
9393
assert _utils.camel_to_underscore('camelCase') == 'camel_case'
9494
assert _utils.camel_to_underscore('hangClosing') == 'hang_closing'
9595
assert _utils.camel_to_underscore('ignore') == 'ignore'
96+
assert _utils.camel_to_underscore('CamelCase') == 'camel_case'
97+
assert _utils.camel_to_underscore('SomeLongCamelCase') == 'some_long_camel_case'
98+
assert _utils.camel_to_underscore('already_using_underscore') == 'already_using_underscore'
99+
assert _utils.camel_to_underscore('Using_only_someUnderscore') == 'using_only_some_underscore'
100+
assert _utils.camel_to_underscore('Using_Only_Some_underscore') == 'using_only_some_underscore'
101+
assert _utils.camel_to_underscore('ALL_UPPER_CASE') == 'all_upper_case'

0 commit comments

Comments
 (0)