[gnome-builder] Minor fixes in the vala plugin



commit 2c1dfdd02cba7072797859ade901d8dad18026b0
Author: Ben Iofel <iofelben gmail com>
Date:   Sun Sep 27 02:02:55 2015 -0400

    Minor fixes in the vala plugin

 plugins/vala-pack/configure.ac                  |    2 +-
 plugins/vala-pack/ide-vala-completion-item.vala |    4 ++-
 plugins/vala-pack/ide-vala-symbol-resolver.vala |   38 ++++++++++++++++++-----
 3 files changed, 34 insertions(+), 10 deletions(-)
---
diff --git a/plugins/vala-pack/configure.ac b/plugins/vala-pack/configure.ac
index 273b267..7baeee7 100644
--- a/plugins/vala-pack/configure.ac
+++ b/plugins/vala-pack/configure.ac
@@ -7,7 +7,7 @@ AC_ARG_ENABLE([enable-vala-pack-plugin],
 
 AS_IF([test x$enable_vala_pack_plugin != xno],[
        PKG_CHECK_MODULES(VALA, [libvala-0.30 >= 0.29.3],[enable_vala_pack_plugin=yes],[
-               AS_IF([test x$enable_vala_pack_plugin = yes],[
+               AS_IF([test x$enable_vala_pack_plugin = xyes],[
                        AC_MSG_ERROR([Failed to locate vala. Please install the vala-devel package.])
                ])
        ])
diff --git a/plugins/vala-pack/ide-vala-completion-item.vala b/plugins/vala-pack/ide-vala-completion-item.vala
index 7f3fbbb..94ee00b 100644
--- a/plugins/vala-pack/ide-vala-completion-item.vala
+++ b/plugins/vala-pack/ide-vala-completion-item.vala
@@ -51,7 +51,7 @@ namespace Ide
                                return "lang-variable-symbolic";
                        else if (symbol is Vala.Field)
                                return "struct-field-symbolic";
-                       else if (symbol is Vala.Method || symbol is Vala.MethodCall)
+                       else if (symbol is Vala.Subroutine)
                                return "lang-function-symbolic";
                        else if (symbol is Vala.Namespace)
                                return "lang-include-symbolic";
@@ -67,6 +67,8 @@ namespace Ide
                                return "lang-enum-symbolic";
                        else if (symbol is Vala.EnumValue)
                                return "lang-enum-value-symbolic";
+                       else if (symbol is Vala.Delegate)
+                               return "lang-typedef-symbolic";
 
                        return null;
                }
diff --git a/plugins/vala-pack/ide-vala-symbol-resolver.vala b/plugins/vala-pack/ide-vala-symbol-resolver.vala
index aefc1f9..200714a 100644
--- a/plugins/vala-pack/ide-vala-symbol-resolver.vala
+++ b/plugins/vala-pack/ide-vala-symbol-resolver.vala
@@ -52,7 +52,12 @@ namespace Ide
                        if (symbol != null) {
                                var kind = Ide.SymbolKind.NONE;
                                if (symbol is Vala.Class) kind = Ide.SymbolKind.CLASS;
-                               else if (symbol is Vala.Subroutine) kind = Ide.SymbolKind.FUNCTION;
+                               else if (symbol is Vala.Subroutine) {
+                                       if (symbol.is_instance_member ())
+                                               kind = Ide.SymbolKind.METHOD;
+                                       else
+                                               kind = Ide.SymbolKind.FUNCTION;
+                               }
                                else if (symbol is Vala.Struct) kind = Ide.SymbolKind.STRUCT;
                                else if (symbol is Vala.Field) kind = Ide.SymbolKind.FIELD;
                                else if (symbol is Vala.Enum) kind = Ide.SymbolKind.ENUM;
@@ -60,13 +65,14 @@ namespace Ide
                                else if (symbol is Vala.Variable) kind = Ide.SymbolKind.VARIABLE;
 
                                var flags = Ide.SymbolFlags.NONE;
-                               if (symbol.is_class_member ()) {
-                                       if (symbol.is_instance_member ())
-                                               flags |= Ide.SymbolFlags.IS_MEMBER;
-                                       else
-                                               flags |= Ide.SymbolFlags.IS_STATIC;
-                               }
-                               if (symbol.check_deprecated ())
+                               if (symbol.is_instance_member ())
+                                       flags |= Ide.SymbolFlags.IS_MEMBER;
+
+                               var binding = get_member_binding (symbol);
+                               if (binding != null && binding == Vala.MemberBinding.STATIC)
+                                       flags |= Ide.SymbolFlags.IS_STATIC;
+
+                               if (symbol.deprecated)
                                        flags |= Ide.SymbolFlags.IS_DEPRECATED;
 
                                var source_reference = symbol.source_reference;
@@ -82,6 +88,22 @@ namespace Ide
 
                        return null;
                }
+
+               // a member binding is Instance, Class, or Static
+               private Vala.MemberBinding? get_member_binding (Vala.Symbol sym)
+               {
+                       if (sym is Vala.Constructor)
+                               return ((Vala.Constructor)sym).binding;
+                       if (sym is Vala.Destructor)
+                               return ((Vala.Destructor)sym).binding;
+                       if (sym is Vala.Field)
+                               return ((Vala.Field)sym).binding;
+                       if (sym is Vala.Method)
+                               return ((Vala.Method)sym).binding;
+                       if (sym is Vala.Property)
+                               return ((Vala.Property)sym).binding;
+                       return null;
+               }
        }
 }
 


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