summaryrefslogtreecommitdiff
path: root/dev-util/anjuta/files/3.34.0-Add-new-vala-support.patch
blob: 219a0308121baee5c6770ffd86983c05523beaf7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
This is a combination of 7 upstream commits:

build: Allow building with vala 0.46 and drop support for 0.30 and earlier
language-support-vala: Support for vala 0.48 API
build: Allow building with vala 0.48
build: Allow building with vala 0.50
build: Allow building with vala 0.50 and 0.52
build: Allow building with vala 0.54
build: Allow building with vala 0.56
---
 configure.ac                              |  4 +--
 plugins/language-support-vala/plugin.vala | 37 ++++++++++++++++++-----
 2 files changed, 31 insertions(+), 10 deletions(-)

diff --git a/configure.ac b/configure.ac
index 3b4c99504..4fbad5392 100644
--- a/configure.ac
+++ b/configure.ac
@@ -338,7 +338,7 @@ if test "$user_disabled_vala" = 1; then
 else
         AC_MSG_RESULT(no)
 	AC_MSG_CHECKING(if libvala is available)
-	m4_foreach([VERSION], [[0.44], [0.42], [0.40], [0.38], [0.36], [0.34], [0.32], [0.30], [0.28], [0.26], [0.24], [0.22], [0.20], [0.18]],
+	m4_foreach_w([VERSION], [0.56 0.54 0.52 0.50 0.48 0.46 0.44 0.42 0.40 0.38 0.36 0.34 0.32],
 		[PKG_CHECK_EXISTS([ libvala-VERSION ],
 			 [ valaver="-VERSION" ])
 			 ])
@@ -350,7 +350,7 @@ else
 	else
 		AC_MSG_RESULT(no)
 		enable_vala="no"
-		VALA_REQUIRED=0.18.0
+		VALA_REQUIRED=0.32.0
 	fi
 	AC_SUBST(LIBVALA)
 fi
diff --git a/plugins/language-support-vala/plugin.vala b/plugins/language-support-vala/plugin.vala
index 13d35fec4..d94634c7f 100644
--- a/plugins/language-support-vala/plugin.vala
+++ b/plugins/language-support-vala/plugin.vala
@@ -78,7 +78,11 @@ public class ValaPlugin : Plugin, IAnjuta.Preferences {
 
 	void init_context () {
 		context = new Vala.CodeContext();
+#if VALA_0_50
+		context.set_target_profile (Vala.Profile.GOBJECT);
+#else
 		context.profile = Vala.Profile.GOBJECT;
+#endif
 		context.report = report;
 		report.clear_error_indicators ();
 
@@ -414,11 +418,19 @@ public class ValaPlugin : Plugin, IAnjuta.Preferences {
 			builder.append_printf ("%s sender", widget.get_full_name ());
 
 			foreach (var param in sig.get_parameters ()) {
+#if VALA_0_48
+				builder.append_printf (", %s %s", param.variable_type.type_symbol.get_full_name (), param.name);
+#else
 				builder.append_printf (", %s %s", param.variable_type.data_type.get_full_name (), param.name);
+#endif
 			}
 		} else {
 			foreach (var param in sig.get_parameters ()) {
+#if VALA_0_48
+				builder.append_printf ("%s %s, ", param.variable_type.type_symbol.get_full_name (), param.name);
+#else
 				builder.append_printf ("%s %s, ", param.variable_type.data_type.get_full_name (), param.name);
+#endif
 			}
 
 			builder.append_printf ("%s sender", widget.get_full_name ());
@@ -563,6 +575,15 @@ public class ValaPlugin : Plugin, IAnjuta.Preferences {
 		}
 		return matching_symbols;
 	}
+
+	inline List<Vala.Symbol> symbol_lookup_inherited_for_type (Vala.DataType data_type, string name, bool prefix_match, bool invocation = false) {
+#if VALA_0_48
+		return symbol_lookup_inherited (data_type.type_symbol, name, prefix_match, invocation);
+#else
+		return symbol_lookup_inherited (data_type.data_type, name, prefix_match, invocation);
+#endif
+	}
+
 	List<Vala.Symbol> symbol_lookup_inherited (Vala.Symbol? sym, string name, bool prefix_match, bool invocation = false) {
 		List<Vala.Symbol> result = null;
 
@@ -580,32 +601,32 @@ public class ValaPlugin : Plugin, IAnjuta.Preferences {
 		}
 		if (invocation && sym is Vala.Method) {
 			var func = (Vala.Method) sym;
-			result.concat (symbol_lookup_inherited (func.return_type.data_type, name, prefix_match));
+			result.concat (symbol_lookup_inherited_for_type (func.return_type, name, prefix_match));
 		} else if (sym is Vala.Class) {
 			var cl = (Vala.Class) sym;
 			foreach (var base_type in cl.get_base_types ()) {
-				result.concat (symbol_lookup_inherited (base_type.data_type, name, prefix_match));
+				result.concat (symbol_lookup_inherited_for_type (base_type, name, prefix_match));
 			}
 		} else if (sym is Vala.Struct) {
 			var st = (Vala.Struct) sym;
-			result.concat (symbol_lookup_inherited (st.base_type.data_type, name, prefix_match));
+			result.concat (symbol_lookup_inherited_for_type (st.base_type, name, prefix_match));
 		} else if (sym is Vala.Interface) {
 			var iface = (Vala.Interface) sym;
 			foreach (var prerequisite in iface.get_prerequisites ()) {
-				result.concat (symbol_lookup_inherited (prerequisite.data_type, name, prefix_match));
+				result.concat (symbol_lookup_inherited_for_type (prerequisite, name, prefix_match));
 			}
 		} else if (sym is Vala.LocalVariable) {
 			var variable = (Vala.LocalVariable) sym;
-			result.concat (symbol_lookup_inherited (variable.variable_type.data_type, name, prefix_match));
+			result.concat (symbol_lookup_inherited_for_type (variable.variable_type, name, prefix_match));
 		} else if (sym is Vala.Field) {
 			var field = (Vala.Field) sym;
-			result.concat (symbol_lookup_inherited (field.variable_type.data_type, name, prefix_match));
+			result.concat (symbol_lookup_inherited_for_type (field.variable_type, name, prefix_match));
 		} else if (sym is Vala.Property) {
 			var prop = (Vala.Property) sym;
-			result.concat (symbol_lookup_inherited (prop.property_type.data_type, name, prefix_match));
+			result.concat (symbol_lookup_inherited_for_type (prop.property_type, name, prefix_match));
 		} else if (sym is Vala.Parameter) {
 			var fp = (Vala.Parameter) sym;
-			result.concat (symbol_lookup_inherited (fp.variable_type.data_type, name, prefix_match));
+			result.concat (symbol_lookup_inherited_for_type (fp.variable_type, name, prefix_match));
 		}
 
 		return result;
-- 
2.35.1