[gnome-builder/1074-vala-language-server-add-support-using-gvls: 23/24] GVls: Some fixes for Ide.Identer implementation



commit 0b4e8d0bd4386a90df9706538a6f7111f15a705f
Author: Daniel Espinosa Ortiz <esodan gmail com>
Date:   Fri Dec 13 20:38:12 2019 -0600

    GVls: Some fixes for Ide.Identer implementation

 src/plugins/gvls/gvls_plugin.py | 43 ++++++++++++++++++++++-------------------
 1 file changed, 23 insertions(+), 20 deletions(-)
---
diff --git a/src/plugins/gvls/gvls_plugin.py b/src/plugins/gvls/gvls_plugin.py
index ec97ab4d1..3346eab68 100644
--- a/src/plugins/gvls/gvls_plugin.py
+++ b/src/plugins/gvls/gvls_plugin.py
@@ -33,6 +33,7 @@ from gi.repository import GObject
 from gi.repository import Ide
 from gi.repository import Gdk
 from gi.repository import Gtk
+from gi.repository import GtkSource
 
 DEV_MODE = True
 
@@ -230,16 +231,17 @@ class GVlsDiagnosticProvider(Ide.LspDiagnosticProvider):
 #
 # Stolen from src/plugins/vala-pack/ide-vala-identer.vala
 # Copyright 2015 Christian Hergert <christian hergert me>
+# Copyright 2019 Daniel Espinosa <esodan gnome org>
 #
 class GVlsIdenter (Ide.Object, Ide.Indenter):
     def is_trigger (self, evkey):
-        val = evkey.get_keyval ()
+        val = evkey.keyval
         if val == Gdk.KEY_Return or val == Gdk.KEY_KP_Enter:
             return True
         if val == Gdk.KDEY_slash:
             return True
         return False
-    def format (self, textView, begin, end, evkey):
+    def format (self, text_view, begin, end, evkey):
         source_view = text_view
         was_newline = self.is_newline_keyval (evkey.keyval)
         copy = end
@@ -247,18 +249,18 @@ class GVlsIdenter (Ide.Object, Ide.Indenter):
         # Move us back to the just inserted character
         copy.backward_char ()
         # If we are in a comment, continue the indentation
-        if (in_comment (text_view, copy)):
+        if (self.in_comment (text_view, copy)):
             # maybe close a multiline comment
             if (copy.get_char () == '/'):
                 close = copy
             if (close.backward_char () and close.get_char () == ' ' and close.backward_char () and 
close.get_char () == '*'):
-                begin.backward_char ();
-                begin.backward_char ();
-                return ("/", cursor_offset);
+                begin.backward_char ()
+                begin.backward_char ()
+                return ("/", cursor_offset)
         if (was_newline):
-            return indent_comment (text_view, copy);
-        if (is_newline_in_braces (copy)):
-            prefix = copy_indent (text_view, copy);
+            return indent_comment (text_view, copy)
+        if (self.is_newline_in_braces (copy)):
+            prefix = self.copy_indent (text_view, copy)
             if (source_view.insert_spaces_instead_of_tabs):
                 indent = "    "
             else:
@@ -266,7 +268,7 @@ class GVlsIdenter (Ide.Object, Ide.Indenter):
             cursor_offset = -prefix.length - 1
             return (prefix + indent + "\n" + prefix, cursor_offset)
         if (was_newline):
-            return (copy_indent (text_view, copy), cursor_offset)
+            return (self.copy_indent (text_view, copy), cursor_offset)
         return null
     def copy_indent (self, text_view, iter):
         begin = iter
@@ -284,31 +286,32 @@ class GVlsIdenter (Ide.Object, Ide.Indenter):
             end.forward_to_line_end ()
         return begin.get_slice (end)
     def indent_comment (self, text_view, iter):
-        line = get_line_text (iter).strip ();
+        line = self.get_line_text (iter).strip ();
         # continue with another single line comment
         if line.has_prefix ("//"):
             return copy_indent (text_view, iter) + "// "
         # comment is closed, copy indent, possibly trimming extra space
         if (line.has_suffix ("*/")):
             if (line.has_prefix ("*")):
-                s = GLib.String.new (copy_indent (text_view, iter))
-                if (str(s).endswith (" ")):
+                s = GLib.String ()
+                s.append (self.copy_indent (text_view, iter))
+                if (s.str.endswith (" ")):
                     s.truncate (len (s) - 1)
-                return str(s);
+                return s.str
         if (line.endswith ("/*") and not line.endswith ("*/")):
-            return copy_indent (text_view, iter) + " * "
+            return self.copy_indent (text_view, iter) + " * "
         elif (line.has_prefix ("*")):
-            return copy_indent (text_view, iter) + "* "
-        return copy_indent (text_view, iter)
+            return self.copy_indent (text_view, iter) + "* "
+        return self.copy_indent (text_view, iter)
     def in_comment (self, text_view, iter):
-        buffer = text_view.buffer
+        buffer = text_view.get_buffer ()
         copy = iter
         copy.backward_char ()
         return buffer.iter_has_context_class (copy, "comment")
     def is_newline_keyval (self, keyval):
         if keyval == Gdk.KEY_Return or keyval == Gdk.KEY_KP_Enter:
-            return true
-        return false
+            return True
+        return False
     def is_newline_in_braces (self, iter):
         prev = iter
         next = iter


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]