Fix bold at start of line
This commit is contained in:
parent
bfd98e73a4
commit
71e17bfe09
1 changed files with 5 additions and 17 deletions
|
|
@ -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;
|
||||
}
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue