Change spaces to tabs

This commit is contained in:
gingerBill
2020-05-24 16:40:48 +01:00
parent 26c9d17040
commit e42f7008fc
+167 -166
View File
@@ -1,6 +1,7 @@
package strings package strings
import "core:mem" import "core:mem"
import "core:unicode"
import "core:unicode/utf8" import "core:unicode/utf8"
clone :: proc(s: string, allocator := context.allocator) -> string { clone :: proc(s: string, allocator := context.allocator) -> string {
@@ -708,190 +709,190 @@ scrub :: proc(s: string, replacement: string, allocator := context.allocator) ->
} }
to_snake_case :: proc(str: string, allocator := context.allocator) -> string { to_snake_case :: proc(str: string, allocator := context.allocator) -> string {
buf := make_builder(allocator); buf := make_builder(allocator);
last_chars: [2]rune; last_chars: [2]rune;
for char, _ in str { for char, _ in str {
switch char { switch char {
case 'A'..'Z': case 'A'..'Z':
switch last_chars[1] { switch last_chars[1] {
case 'a'..'z', '0'..'9': case 'a'..'z', '0'..'9':
write_rune(&buf, '_'); write_rune(&buf, '_');
case 'A'..'Z': case 'A'..'Z':
write_rune(&buf, last_chars[1] + ('a'-'A')); write_rune(&buf, last_chars[1] + ('a'-'A'));
} }
case 'a'..'z': case 'a'..'z':
switch last_chars[1] { switch last_chars[1] {
case 'A'..'Z': case 'A'..'Z':
switch last_chars[0] { switch last_chars[0] {
case 'A'..'Z': case 'A'..'Z':
write_rune(&buf, '_'); write_rune(&buf, '_');
} }
write_rune(&buf, last_chars[1] + ('a'-'A')); write_rune(&buf, last_chars[1] + ('a'-'A'));
case '0'..'9': case '0'..'9':
write_rune(&buf, '_'); write_rune(&buf, '_');
} }
write_rune(&buf, char); write_rune(&buf, char);
case '0'..'9': case '0'..'9':
switch last_chars[1] { switch last_chars[1] {
case 'A'..'Z': case 'A'..'Z':
write_rune(&buf, last_chars[1] + ('a'-'A')); write_rune(&buf, last_chars[1] + ('a'-'A'));
write_rune(&buf, '_'); write_rune(&buf, '_');
case 'a'..'z': case 'a'..'z':
write_rune(&buf, '_'); write_rune(&buf, '_');
} }
write_rune(&buf, char); write_rune(&buf, char);
case '_': case '_':
switch last_chars[1] { switch last_chars[1] {
case 'A'..'Z': case 'A'..'Z':
write_rune(&buf, last_chars[1] + ('a'-'A')); write_rune(&buf, last_chars[1] + ('a'-'A'));
} }
write_rune(&buf, char); write_rune(&buf, char);
case: case:
unimplemented(); unimplemented();
} }
last_chars[0] = last_chars[1]; last_chars[0] = last_chars[1];
last_chars[1] = char; last_chars[1] = char;
} }
switch last_chars[1] { switch last_chars[1] {
case 'A'..'Z': case 'A'..'Z':
write_rune(&buf, last_chars[1] + ('a'-'A')); write_rune(&buf, last_chars[1] + ('a'-'A'));
} }
return to_string(buf); return to_string(buf);
} }
to_ada_case :: proc(str: string, allocator := context.allocator) -> string { to_ada_case :: proc(str: string, allocator := context.allocator) -> string {
buf := make_builder(allocator); buf := make_builder(allocator);
last_chars: [2]rune; last_chars: [2]rune;
for char, _ in str { for char, _ in str {
switch char { switch char {
case 'A'..'Z': case 'A'..'Z':
switch last_chars[1] { switch last_chars[1] {
case 'a'..'z', '0'..'9': case 'a'..'z', '0'..'9':
write_rune(&buf, '_'); write_rune(&buf, '_');
case 'A'..'Z': case 'A'..'Z':
switch last_chars[0] { switch last_chars[0] {
case '_', '\x00': case '_', '\x00':
write_rune(&buf, last_chars[1]); write_rune(&buf, last_chars[1]);
case: case:
write_rune(&buf, last_chars[1] + ('a'-'A')); write_rune(&buf, last_chars[1] + ('a'-'A'));
} }
} }
case 'a'..'z': case 'a'..'z':
switch last_chars[1] { switch last_chars[1] {
case 'A'..'Z': case 'A'..'Z':
switch last_chars[0] { switch last_chars[0] {
case 'A'..'Z': case 'A'..'Z':
write_rune(&buf, '_'); write_rune(&buf, '_');
write_rune(&buf, last_chars[1]); write_rune(&buf, last_chars[1]);
case: case:
write_rune(&buf, last_chars[1]); write_rune(&buf, last_chars[1]);
} }
write_rune(&buf, char); write_rune(&buf, char);
case '0'..'9': case '0'..'9':
write_rune(&buf, '_'); write_rune(&buf, '_');
write_rune(&buf, char); write_rune(&buf, char);
case 'a'..'z': case 'a'..'z':
write_rune(&buf, char); write_rune(&buf, char);
case '_', '\x00': case '_', '\x00':
write_rune(&buf, char - ('a'-'A')); write_rune(&buf, char - ('a'-'A'));
} }
case '0'..'9': case '0'..'9':
switch last_chars[1] { switch last_chars[1] {
case 'A'..'Z': case 'A'..'Z':
write_rune(&buf, last_chars[1] + ('a'-'A')); write_rune(&buf, last_chars[1] + ('a'-'A'));
write_rune(&buf, '_'); write_rune(&buf, '_');
case 'a'..'z': case 'a'..'z':
write_rune(&buf, '_'); write_rune(&buf, '_');
} }
write_rune(&buf, char); write_rune(&buf, char);
case '_': case '_':
switch last_chars[1] { switch last_chars[1] {
case 'A'..'Z': case 'A'..'Z':
write_rune(&buf, last_chars[1] + ('a'-'A')); write_rune(&buf, last_chars[1] + ('a'-'A'));
} }
write_rune(&buf, char); write_rune(&buf, char);
case: case:
write_rune(&buf, char); write_rune(&buf, char);
} }
last_chars[0] = last_chars[1]; last_chars[0] = last_chars[1];
last_chars[1] = char; last_chars[1] = char;
} }
switch last_chars[1] { switch last_chars[1] {
case 'A'..'Z': case 'A'..'Z':
write_rune(&buf, last_chars[1] + ('a'-'A')); write_rune(&buf, last_chars[1] + ('a'-'A'));
} }
return to_string(buf); return to_string(buf);
} }
to_screaming_snake_case :: proc(str: string, allocator := context.allocator) -> string { to_screaming_snake_case :: proc(str: string, allocator := context.allocator) -> string {
buf := make_builder(allocator); buf := make_builder(allocator);
last_chars: [2]rune; last_chars: [2]rune;
for char, _ in str { for char, _ in str {
switch char { switch char {
case 'A'..'Z': case 'A'..'Z':
switch last_chars[1] { switch last_chars[1] {
case 'a'..'z', '0'..'9': case 'a'..'z', '0'..'9':
write_rune(&buf, '_'); write_rune(&buf, '_');
case 'A'..'Z': case 'A'..'Z':
write_rune(&buf, last_chars[1]); write_rune(&buf, last_chars[1]);
} }
case 'a'..'z': case 'a'..'z':
switch last_chars[1] { switch last_chars[1] {
case 'A'..'Z': case 'A'..'Z':
switch last_chars[0] { switch last_chars[0] {
case 'A'..'Z': case 'A'..'Z':
write_rune(&buf, '_'); write_rune(&buf, '_');
write_rune(&buf, last_chars[1]); write_rune(&buf, last_chars[1]);
case: case:
write_rune(&buf, last_chars[1]); write_rune(&buf, last_chars[1]);
} }
write_rune(&buf, char - ('a'-'A')); write_rune(&buf, char - ('a'-'A'));
case '0'..'9': case '0'..'9':
write_rune(&buf, '_'); write_rune(&buf, '_');
write_rune(&buf, char - ('a'-'A')); write_rune(&buf, char - ('a'-'A'));
case 'a'..'z': case 'a'..'z':
write_rune(&buf, char - ('a'-'A')); write_rune(&buf, char - ('a'-'A'));
case '_', '\x00': case '_', '\x00':
write_rune(&buf, char - ('a'-'A')); write_rune(&buf, char - ('a'-'A'));
} }
case '0'..'9': case '0'..'9':
switch last_chars[1] { switch last_chars[1] {
case 'A'..'Z': case 'A'..'Z':
write_rune(&buf, last_chars[1]); write_rune(&buf, last_chars[1]);
write_rune(&buf, '_'); write_rune(&buf, '_');
case 'a'..'z': case 'a'..'z':
write_rune(&buf, '_'); write_rune(&buf, '_');
} }
write_rune(&buf, char); write_rune(&buf, char);
case '_': case '_':
switch last_chars[1] { switch last_chars[1] {
case 'A'..'Z': case 'A'..'Z':
write_rune(&buf, last_chars[1]); write_rune(&buf, last_chars[1]);
} }
write_rune(&buf, char); write_rune(&buf, char);
case: case:
unimplemented(); unimplemented();
} }
last_chars[0] = last_chars[1]; last_chars[0] = last_chars[1];
last_chars[1] = char; last_chars[1] = char;
} }
switch last_chars[1] { switch last_chars[1] {
case 'A'..'Z': case 'A'..'Z':
write_rune(&buf, last_chars[1]); write_rune(&buf, last_chars[1]);
} }
return to_string(buf); return to_string(buf);
} }
reverse :: proc(s: string, allocator := context.allocator) -> string { reverse :: proc(s: string, allocator := context.allocator) -> string {