diff --git a/src/ast/generate.js b/src/ast/generate.js index aba8934..81bbc4f 100644 --- a/src/ast/generate.js +++ b/src/ast/generate.js @@ -274,7 +274,7 @@ let content = `//! generated file, do not modify it directly #![allow(clippy::all)] #![allow(unused)] -use rowan::{ast::{support, AstChildren, AstNode}, TextSize}; +use rowan::{ast::{support, AstChildren, AstNode}, TextSize, TextRange}; use crate::syntax::{OrgLanguage, SyntaxKind, SyntaxKind::*, SyntaxNode, SyntaxToken}; fn affiliated_keyword(node: &SyntaxNode, filter: impl Fn(&str) -> bool) -> Option { @@ -310,6 +310,10 @@ impl ${node.struct} { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() diff --git a/src/ast/generated.rs b/src/ast/generated.rs index 0f71275..1bfd489 100644 --- a/src/ast/generated.rs +++ b/src/ast/generated.rs @@ -5,7 +5,7 @@ use crate::syntax::{OrgLanguage, SyntaxKind, SyntaxKind::*, SyntaxNode, SyntaxToken}; use rowan::{ ast::{support, AstChildren, AstNode}, - TextSize, + TextRange, TextSize, }; fn affiliated_keyword( @@ -43,6 +43,10 @@ impl Document { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -89,6 +93,10 @@ impl Section { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -123,6 +131,10 @@ impl Paragraph { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -177,6 +189,10 @@ impl Headline { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -223,6 +239,10 @@ impl PropertyDrawer { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -257,6 +277,10 @@ impl NodeProperty { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -288,6 +312,10 @@ impl Planning { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -319,6 +347,10 @@ impl OrgTable { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -373,6 +405,10 @@ impl OrgTableRow { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -404,6 +440,10 @@ impl OrgTableCell { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -435,6 +475,10 @@ impl List { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -489,6 +533,10 @@ impl ListItem { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -520,6 +568,10 @@ impl Drawer { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -551,6 +603,10 @@ impl DynBlock { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -602,6 +658,10 @@ impl Keyword { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -633,6 +693,10 @@ impl BabelCall { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -664,6 +728,10 @@ impl AffiliatedKeyword { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -695,6 +763,10 @@ impl TableEl { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -729,6 +801,10 @@ impl Clock { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -763,6 +839,10 @@ impl FnDef { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -817,6 +897,10 @@ impl Comment { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -874,6 +958,10 @@ impl Rule { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -908,6 +996,10 @@ impl FixedWidth { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -965,6 +1057,10 @@ impl SpecialBlock { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -1016,6 +1112,10 @@ impl QuoteBlock { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -1067,6 +1167,10 @@ impl CenterBlock { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -1118,6 +1222,10 @@ impl VerseBlock { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -1169,6 +1277,10 @@ impl CommentBlock { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -1220,6 +1332,10 @@ impl ExampleBlock { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -1271,6 +1387,10 @@ impl ExportBlock { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -1322,6 +1442,10 @@ impl SourceBlock { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -1373,6 +1497,10 @@ impl InlineCall { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -1404,6 +1532,10 @@ impl InlineSrc { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -1435,6 +1567,10 @@ impl Link { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -1466,6 +1602,10 @@ impl Cookie { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -1497,6 +1637,10 @@ impl RadioTarget { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -1528,6 +1672,10 @@ impl FnRef { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -1559,6 +1707,10 @@ impl Macros { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -1590,6 +1742,10 @@ impl Snippet { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -1621,6 +1777,10 @@ impl Target { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -1652,6 +1812,10 @@ impl Bold { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -1683,6 +1847,10 @@ impl Strike { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -1714,6 +1882,10 @@ impl Italic { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -1745,6 +1917,10 @@ impl Underline { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -1776,6 +1952,10 @@ impl Verbatim { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -1807,6 +1987,10 @@ impl Code { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -1841,6 +2025,10 @@ impl Timestamp { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -1902,6 +2090,10 @@ impl LatexEnvironment { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -1933,6 +2125,10 @@ impl LatexFragment { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -1964,6 +2160,10 @@ impl Entity { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -1995,6 +2195,10 @@ impl LineBreak { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -2026,6 +2230,10 @@ impl Superscript { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string() @@ -2057,6 +2265,10 @@ impl Subscript { pub fn end(&self) -> TextSize { self.syntax.text_range().end() } + /// Range of this element + pub fn text_range(&self) -> TextRange { + self.syntax.text_range() + } /// Raw text of this element pub fn raw(&self) -> String { self.syntax.to_string()