Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
code_editor_tokenizer.hpp
Go to the documentation of this file.
1#pragma once
2
24
25#include <cstddef>
26#include <string_view>
27#include <vector>
28
30
31namespace pulp::view {
32
52
54struct Token {
55 std::size_t start = 0;
56 std::size_t length = 0;
58};
59
75std::vector<Token> tokenize_line(std::string_view line, CodeLanguage language);
76
77// ── Per-language entry points (callable independently) ────────────────
78
79std::vector<Token> tokenize_cpp_line(std::string_view line);
80std::vector<Token> tokenize_javascript_line(std::string_view line);
81std::vector<Token> tokenize_python_line(std::string_view line);
82std::vector<Token> tokenize_json_line(std::string_view line);
83std::vector<Token> tokenize_lua_line(std::string_view line);
84std::vector<Token> tokenize_markdown_line(std::string_view line);
85
89bool is_keyword(std::string_view name, CodeLanguage language);
90
91} // namespace pulp::view
Hover-cursor tracking for platform window hosts.
Definition fwd.hpp:27
std::vector< Token > tokenize_python_line(std::string_view line)
std::vector< Token > tokenize_lua_line(std::string_view line)
TokenClass
Token classification for tokenize_line.
Definition code_editor_tokenizer.hpp:36
@ comment
Single-line comment (//, #, --) or the start of a block comment.
Definition code_editor_tokenizer.hpp:45
@ text
Plain text (default color).
Definition code_editor_tokenizer.hpp:37
@ link
Markdown / hyperlink span.
Definition code_editor_tokenizer.hpp:50
@ preprocessor
Preprocessor / directive line (e.g. #include).
Definition code_editor_tokenizer.hpp:47
@ type
Built-in / common type name (e.g. int, Number).
Definition code_editor_tokenizer.hpp:39
@ punctuation
Operators and structural punctuation.
Definition code_editor_tokenizer.hpp:48
@ number
Numeric literal (int / float / hex / bin).
Definition code_editor_tokenizer.hpp:43
@ string
String / character literal (single or double quote).
Definition code_editor_tokenizer.hpp:44
@ keyword
Language keyword (e.g. if, return, class).
Definition code_editor_tokenizer.hpp:38
@ identifier
Identifier — the tokenizer rarely emits this on its own; callers can treat unmatched text as identifi...
Definition code_editor_tokenizer.hpp:40
@ heading
Markdown heading (#, ##, …).
Definition code_editor_tokenizer.hpp:49
std::vector< Token > tokenize_markdown_line(std::string_view line)
std::vector< Token > tokenize_cpp_line(std::string_view line)
std::vector< Token > tokenize_json_line(std::string_view line)
bool is_keyword(std::string_view name, CodeLanguage language)
True when name is one of the keywords the tokenizer recognizes for language.
std::vector< Token > tokenize_javascript_line(std::string_view line)
CodeLanguage
Language mode for syntax highlighting.
Definition code_editor.hpp:15
std::vector< Token > tokenize_line(std::string_view line, CodeLanguage language)
Tokenize a single line of source text for language.
One token span — half-open [start, start+length) into the line.
Definition code_editor_tokenizer.hpp:54
TokenClass cls
Definition code_editor_tokenizer.hpp:57
std::size_t length
Definition code_editor_tokenizer.hpp:56
std::size_t start
Definition code_editor_tokenizer.hpp:55