mirror of
https://github.com/godotengine/godot.git
synced 2026-01-03 18:11:19 +03:00
Cleanup and move char functions to the char_utils.h header.
This commit is contained in:
@@ -34,14 +34,6 @@
|
||||
#include "core/string/string_builder.h"
|
||||
#include "core/string/ustring.h"
|
||||
|
||||
static bool _is_whitespace(char32_t c) {
|
||||
return c == '\t' || c == ' ';
|
||||
}
|
||||
|
||||
static bool _is_char(char32_t c) {
|
||||
return !is_symbol(c);
|
||||
}
|
||||
|
||||
void CodeEdit::_notification(int p_what) {
|
||||
switch (p_what) {
|
||||
case NOTIFICATION_THEME_CHANGED:
|
||||
@@ -607,9 +599,9 @@ void CodeEdit::_handle_unicode_input_internal(const uint32_t p_unicode) {
|
||||
|
||||
int post_brace_pair = cc < get_line(cl).length() ? _get_auto_brace_pair_close_at_pos(cl, cc) : -1;
|
||||
|
||||
if (has_string_delimiter(chr) && cc > 0 && _is_char(get_line(cl)[cc - 1]) && post_brace_pair == -1) {
|
||||
if (has_string_delimiter(chr) && cc > 0 && !is_symbol(get_line(cl)[cc - 1]) && post_brace_pair == -1) {
|
||||
insert_text_at_caret(chr);
|
||||
} else if (cc < get_line(cl).length() && _is_char(get_line(cl)[cc])) {
|
||||
} else if (cc < get_line(cl).length() && !is_symbol(get_line(cl)[cc])) {
|
||||
insert_text_at_caret(chr);
|
||||
} else if (post_brace_pair != -1 && auto_brace_completion_pairs[post_brace_pair].close_key[0] == chr[0]) {
|
||||
caret_move_offset = auto_brace_completion_pairs[post_brace_pair].close_key.length();
|
||||
@@ -1001,7 +993,7 @@ void CodeEdit::_new_line(bool p_split_current_line, bool p_above) {
|
||||
}
|
||||
|
||||
/* Make sure this is the last char, trailing whitespace or comments are okay. */
|
||||
if (should_indent && (!_is_whitespace(c) && is_in_comment(cl, cc) == -1)) {
|
||||
if (should_indent && (!is_whitespace(c) && is_in_comment(cl, cc) == -1)) {
|
||||
should_indent = false;
|
||||
}
|
||||
}
|
||||
@@ -1817,7 +1809,7 @@ void CodeEdit::request_code_completion(bool p_force) {
|
||||
String line = get_line(get_caret_line());
|
||||
int ofs = CLAMP(get_caret_column(), 0, line.length());
|
||||
|
||||
if (ofs > 0 && (is_in_string(get_caret_line(), ofs) != -1 || _is_char(line[ofs - 1]) || code_completion_prefixes.has(line[ofs - 1]))) {
|
||||
if (ofs > 0 && (is_in_string(get_caret_line(), ofs) != -1 || !is_symbol(line[ofs - 1]) || code_completion_prefixes.has(line[ofs - 1]))) {
|
||||
emit_signal(SNAME("code_completion_requested"));
|
||||
} else if (ofs > 1 && line[ofs - 1] == ' ' && code_completion_prefixes.has(line[ofs - 2])) {
|
||||
emit_signal(SNAME("code_completion_requested"));
|
||||
@@ -1926,7 +1918,7 @@ void CodeEdit::confirm_code_completion(bool p_replace) {
|
||||
|
||||
if (merge_text) {
|
||||
for (; caret_col < line.length(); caret_col++) {
|
||||
if (!_is_char(line[caret_col])) {
|
||||
if (is_symbol(line[caret_col])) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -2562,7 +2554,7 @@ int CodeEdit::_is_in_delimiter(int p_line, int p_column, DelimiterType p_type) c
|
||||
region = E->value();
|
||||
in_region = true;
|
||||
for (int i = E->key() - 2; i >= 0; i--) {
|
||||
if (!_is_whitespace(line[i])) {
|
||||
if (!is_whitespace(line[i])) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@@ -2581,7 +2573,7 @@ int CodeEdit::_is_in_delimiter(int p_line, int p_column, DelimiterType p_type) c
|
||||
}
|
||||
|
||||
for (int i = end_col; i < line.length(); i++) {
|
||||
if (!_is_whitespace(line[i])) {
|
||||
if (!is_whitespace(line[i])) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@@ -2797,11 +2789,11 @@ void CodeEdit::_filter_code_completion_candidates_impl() {
|
||||
while (ofs > 0 && line[ofs] == ' ') {
|
||||
ofs--;
|
||||
}
|
||||
prev_is_word = _is_char(line[ofs]);
|
||||
prev_is_word = !is_symbol(line[ofs]);
|
||||
/* Otherwise get current word and set cofs to the start. */
|
||||
} else {
|
||||
int start_cofs = cofs;
|
||||
while (cofs > 0 && line[cofs - 1] > 32 && (line[cofs - 1] == '/' || _is_char(line[cofs - 1]))) {
|
||||
while (cofs > 0 && line[cofs - 1] > 32 && (line[cofs - 1] == '/' || !is_symbol(line[cofs - 1]))) {
|
||||
cofs--;
|
||||
}
|
||||
string_to_complete = line.substr(cofs, start_cofs - cofs);
|
||||
|
||||
Reference in New Issue
Block a user