11use emmylua_parser:: LuaSyntaxTree as EmmyLuaSyntaxTree ;
22use mlua:: prelude:: * ;
3- use rowan:: TextSize ;
43
54use super :: lua_node:: LuaNodeWrapper ;
65
@@ -16,32 +15,11 @@ impl LuaSyntaxTree {
1615 pub fn get_root ( & self ) -> LuaNodeWrapper {
1716 LuaNodeWrapper :: new ( self . tree . get_red_root ( ) . clone ( ) )
1817 }
19-
20- pub fn get_line_col ( & self , offset : usize ) -> Option < ( usize , usize ) > {
21- let offset = TextSize :: from ( offset as u32 ) ;
22- let ( line, col) = self . tree . get_line_col ( offset) ?;
23- Some ( ( line, col) )
24- }
25-
26- pub fn get_offset ( & self , line : usize , col : usize ) -> Option < usize > {
27- let offset = self . tree . get_offset ( line, col) ?;
28- Some ( offset. into ( ) )
29- }
3018}
3119
3220impl LuaUserData for LuaSyntaxTree {
3321 fn add_methods < M : LuaUserDataMethods < Self > > ( methods : & mut M ) {
3422 methods. add_method ( "getRoot" , |_, this, ( ) | Ok ( this. get_root ( ) ) ) ;
3523 // methods.add_method("get_chunk_node", |_, this, ()| Ok(this.get_chunk_node()));
36- methods. add_method ( "getLineCol" , |lua, this, offset : usize | {
37- let ( line, col) = this. get_line_col ( offset) . unwrap ( ) ;
38- let table = lua. create_table ( ) ?;
39- table. set ( 1 , line) ?;
40- table. set ( 2 , col) ?;
41- Ok ( table)
42- } ) ;
43- methods. add_method ( "getOffset" , |_, this, ( line, col) : ( usize , usize ) | {
44- Ok ( this. get_offset ( line, col) )
45- } ) ;
4624 }
4725}
0 commit comments