Donner 0.8.0-pre
Embeddable browser-grade SVG2 engine
Loading...
Searching...
No Matches
XmlAutocomplete.h File Reference
#include <cstddef>
#include <string>
#include <string_view>
#include <vector>
Include dependency graph for XmlAutocomplete.h:

Classes

struct  donner::editor::XmlAutocompleteContext
 Source replacement range and prefix for XML autocomplete. More...
struct  donner::editor::XmlAutocompleteSuggestion
 A single XML autocomplete suggestion. More...

Namespaces

namespace  donner
 Top-level Donner namespace, which is split into different sub-namespaces such as donner::svg and donner::css.

Enumerations

enum class  donner::editor::XmlAutocompleteContextKind {
  ElementName ,
  AttributeName ,
  StyleValue ,
  TextContent ,
  Unknown
}
 XML/SVG source context at an editor cursor offset. More...

Functions

XmlAutocompleteContext donner::editor::DetectXmlAutocompleteContext (std::string_view source, std::size_t cursorOffset)
 Detect an XML/SVG autocomplete context at a byte offset.
std::vector< XmlAutocompleteSuggestiondonner::editor::BuildXmlAutocompleteSuggestions (const XmlAutocompleteContext &context)
 Build SVG-aware suggestions for a detected XML context.

Enumeration Type Documentation

◆ XmlAutocompleteContextKind

XML/SVG source context at an editor cursor offset.

Enumerator
ElementName 

Cursor is completing an element name after <.

AttributeName 

Cursor is completing an attribute name inside an open tag.

StyleValue 

Cursor is completing a CSS property name in SVG style text.

TextContent 

Cursor is in ordinary text content.

Unknown 

Cursor context is not useful for XML autocomplete.

Function Documentation

◆ BuildXmlAutocompleteSuggestions()

std::vector< XmlAutocompleteSuggestion > donner::editor::BuildXmlAutocompleteSuggestions ( const XmlAutocompleteContext & context)

Build SVG-aware suggestions for a detected XML context.

Element names come from the SVG element registry; attribute names come from SVG presentation attributes plus structural XML/SVG attributes; CSS names come from PropertyRegistry.

Parameters
contextContext returned by DetectXmlAutocompleteContext.
Returns
Matching suggestions, filtered by the context prefix.

◆ DetectXmlAutocompleteContext()

XmlAutocompleteContext donner::editor::DetectXmlAutocompleteContext ( std::string_view source,
std::size_t cursorOffset )

Detect an XML/SVG autocomplete context at a byte offset.

This uses donner::xml::Tokenize instead of regular expressions so incomplete source is interpreted the same way as editor highlighting and source-aware editing.

Parameters
sourceXML/SVG source text.
cursorOffsetByte offset of the editor cursor in source.
Returns
Detected autocomplete context.