Fix bold at start of line

This commit is contained in:
Emilia Simmons 2021-04-20 10:03:29 -04:00
parent bfd98e73a4
commit 71e17bfe09

View file

@ -106,7 +106,6 @@ struct Scanner { // {{{1
indent_length_stack.pop_back();
bullet_stack.pop_back();
lexer->result_symbol = LISTEND;
// std::cout << " == Dedent~" << std::endl;
return true;
}
@ -155,7 +154,6 @@ struct Scanner { // {{{1
bool scan(TSLexer *lexer, const bool *valid_symbols) { // {{{1
// std::cout << " == " << valid_symbols[LISTSTART] << ", " << valid_symbols[LISTEND] << ", " << valid_symbols[LISTITEMEND] << ", " << valid_symbols[BULLET] << ", " << valid_symbols[HLSTARS] << ", " << valid_symbols[SECTIONEND] << ", " << valid_symbols[MARKUP] << std::endl;
if (valid_symbols[SECTIONEND] && lexer->lookahead == '\0' && section_stack.back() > 0) {
lexer->result_symbol = SECTIONEND;
section_stack.pop_back();
@ -192,7 +190,6 @@ struct Scanner { // {{{1
return dedent(lexer);
} else if (indent_length == indent_length_stack.back()) {
if (getbullet(lexer) == bullet_stack.back()) {
// std::cout << " == Item end~" << std::endl;
lexer->result_symbol = LISTITEMEND;
return true;
}
@ -216,7 +213,6 @@ struct Scanner { // {{{1
skip(lexer);
}
// std::cout << " == indent: " << indent_length << " next: '" << char(lexer->lookahead) << "'" << std::endl;
// - Col=0 star {{{1
if (indent_length == 0 && lexer->lookahead == '*') {
@ -231,17 +227,14 @@ struct Scanner { // {{{1
if (valid_symbols[SECTIONEND] && stars <= section_stack.back()) {
section_stack.pop_back();
lexer->result_symbol = SECTIONEND;
// std::cout << " == Section End~" << std::endl;
return true;
} else if (valid_symbols[HLSTARS] && lexer->lookahead == ' ' || lexer->lookahead == '\t') {
section_stack.push_back(stars);
lexer->mark_end(lexer);
lexer->result_symbol = HLSTARS;
// std::cout << " == Stars~" << std::endl;
return true;
} else if (valid_symbols[MARKUP] && stars == 1 && (!iswspace(lexer->lookahead) && lexer->lookahead != '\0')) {
lexer->result_symbol = MARKUP;
// std::cout << " == Bold~" << std::endl;
return true;
}
return false;
@ -251,31 +244,28 @@ struct Scanner { // {{{1
if (valid_symbols[LISTSTART] || valid_symbols[BULLET]) {
bool plus = lexer->lookahead == '+'; // requires special treatment, like *
// + and * need processing here, getbullet skips characters.
bool markup = lexer->lookahead == '+' || lexer->lookahead == '*';
Bullet bullet = getbullet(lexer);
// std::cout << " == bullet: " << bullet << " back indent: " << indent_length_stack.back() << std::endl;
// std::cout << " == il gt back: " << (indent_length > indent_length_stack.back()) << std::endl;
if (valid_symbols[BULLET] && bullet == bullet_stack.back() && indent_length == indent_length_stack.back()) {
lexer->mark_end(lexer);
lexer->result_symbol = BULLET;
// std::cout << " == Bullet~" << std::endl;
return true;
} else if (valid_symbols[LISTSTART] && bullet != NOTABULLET && indent_length > indent_length_stack.back()) {
indent_length_stack.push_back(indent_length);
bullet_stack.push_back(bullet);
lexer->result_symbol = LISTSTART;
// std::cout << " == Liststart~" << std::endl;
return true;
} else if (valid_symbols[MARKUP] && bullet == NOTABULLET && plus) {
} else if (valid_symbols[MARKUP] && bullet == NOTABULLET && markup) {
lexer->result_symbol = MARKUP;
// std::cout << " == Markup~" << std::endl;
return (!iswspace(lexer->lookahead) && lexer->lookahead != '\0');
}
return false;
}
// - Markup {{{1
if (valid_symbols[MARKUP] && (indent_length > 0 || lexer->get_column(lexer) == 0)
if (valid_symbols[MARKUP] // && (indent_length > 0 || lexer->get_column(lexer) == 0)
&& (lexer->lookahead == '*'
|| lexer->lookahead == '/'
|| lexer->lookahead == '_'
@ -285,11 +275,9 @@ struct Scanner { // {{{1
lexer->mark_end(lexer);
skip(lexer);
lexer->result_symbol = MARKUP;
// std::cout << " == Markup~" << std::endl;
return (!iswspace(lexer->lookahead) && lexer->lookahead != '\0');
}
// - Default {{{1
// std::cout << " == False~" << std::endl;
return false;
}
};