MCPcopy Create free account
hub / github.com/CppCXY/EmmyLuaCodeStyle / GetTokenBeforeOffset

Method GetTokenBeforeOffset

LuaParser/src/Ast/LuaSyntaxTree.cpp:447–472  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

445}
446
447LuaSyntaxNode LuaSyntaxTree::GetTokenBeforeOffset(std::size_t offset) const {
448 if (_tokens.empty()) {
449 return LuaSyntaxNode();
450 }
451
452 auto tokenIt = std::partition_point(
453 _tokens.begin(), _tokens.end(),
454 [offset](const IncrementalToken &token) {
455 return token.Start <= offset;
456 });
457 std::size_t tokenIndex = 0;
458 if (tokenIt == _tokens.end()) {
459 tokenIndex = _tokens.size() - 1;
460 } else if (tokenIt == _tokens.begin()) {
461 tokenIndex = 0;
462 } else {
463 tokenIndex = tokenIt - _tokens.begin() - 1;
464 }
465
466 auto &token = _tokens[tokenIndex];
467 if (token.Start <= offset) {
468 return LuaSyntaxNode(token.NodeIndex);
469 }
470
471 return LuaSyntaxNode();
472}
473
474LuaSyntaxNode LuaSyntaxTree::GetTokenAtOffset(std::size_t offset) const {
475 if (_tokens.empty()) {

Callers 2

CompleteMissTokenMethod · 0.80
FormatLineMethod · 0.80

Calls 5

LuaSyntaxNodeClass · 0.85
emptyMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected