src/Builder4/Editor.bjs
authorAlan Knowles <alan@roojs.com>
Tue, 26 Mar 2024 14:30:56 +0000 (22:30 +0800)
committerAlan Knowles <alan@roojs.com>
Tue, 26 Mar 2024 14:30:56 +0000 (22:30 +0800)
src/Builder4/Editor.vala

src/Builder4/Editor.bjs
src/Builder4/Editor.vala

index d0d7cda..eafb520 100644 (file)
                "\tif (str.strip().length < 1) {",
                "\t\treturn;",
                "\t}",
+               "\tvar offset = iter.get_line_offset();",
+               "\tvar line = iter.get_line();",
+               "\tif (_this.prop != null) {",
+               "\t\t\t\t// ",
+               "\t\tline += _this.prop.start_line ; ",
+               "\t\t\t\t\t// this is based on Gtk using tabs (hence 1/2 chars);",
+               "\t\toffset += _this.node.node_pad.length;",
+               "\t\t\t\t\t// javascript listeners are indented 2 more spaces.",
+               "\t\tif (_this.prop.ptype == JsRender.NodePropType.LISTENER) {",
+               "\t\t\toffset += 2;",
+               "\t\t}",
+               "\t} ",
                "\t",
                "\tvar ls = _this.file.getLanguageServer();",
                "\tls.hover.begin(",
-               "\t\t_this.file, iter.get_line(), iter.get_line_offset(),",
+               "\t\t_this.file, line, offset,",
                "\t\t( a, o)  => {",
                "\t\t\tvar res = ls.hover.end(o );",
                "\t\t\t",
index c441e7c..c538530 100644 (file)
@@ -1339,10 +1339,22 @@ public class Editor : Object
                                if (str.strip().length < 1) {
                                        return;
                                }
+                               var offset = iter.get_line_offset();
+                               var line = iter.get_line();
+                               if (_this.prop != null) {
+                                                       // 
+                                       line += _this.prop.start_line ; 
+                                                               // this is based on Gtk using tabs (hence 1/2 chars);
+                                       offset += _this.node.node_pad.length;
+                                                               // javascript listeners are indented 2 more spaces.
+                                       if (_this.prop.ptype == JsRender.NodePropType.LISTENER) {
+                                               offset += 2;
+                                       }
+                               } 
                                
                                var ls = _this.file.getLanguageServer();
                                ls.hover.begin(
-                                       _this.file, iter.get_line(), iter.get_line_offset(),
+                                       _this.file, line, offset,
                                        ( a, o)  => {
                                                var res = ls.hover.end(o );