aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/CodeCompletion/InsightWindow.xaml
blob: 6b5a673884afbb1cd765c41906ccb89018e129ff (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
generated by cgit v1.3.1 (git 2.54.0) at 2026-07-12 09:57:31 +0000 ); } static List<AXmlAttribute> NoAttributes = new List<AXmlAttribute>(); /// <summary> /// Get all attributes with given local name. /// Hash table is used for lookup so this is cheap. /// </summary> public IEnumerable<AXmlAttribute> GetByLocalName(string localName) { if (hashtable.ContainsKey(localName)) { return hashtable[localName]; } else { return NoAttributes; } } /// <inheritdoc/> protected override void ClearItems() { foreach(AXmlAttribute item in this) { RemoveFromHashtable(item); item.Changing -= item_Changing; item.Changed -= item_Changed; } base.ClearItems(); } /// <inheritdoc/> protected override void InsertItem(int index, AXmlAttribute item) { // prevent insertions into the static 'Empty' instance if (this == Empty) throw new NotSupportedException("Cannot insert into AXmlAttributeCollection.Empty"); AddToHashtable(item); item.Changing += item_Changing; item.Changed += item_Changed; base.InsertItem(index, item); } /// <inheritdoc/> protected override void RemoveItem(int index) { RemoveFromHashtable(this[index]); this[index].Changing -= item_Changing; this[index].Changed -= item_Changed; base.RemoveItem(index); } /// <inheritdoc/> protected override void SetItem(int index, AXmlAttribute item) { RemoveFromHashtable(this[index]); this[index].Changing -= item_Changing; this[index].Changed -= item_Changed; AddToHashtable(item); item.Changing += item_Changing; item.Changed += item_Changed; base.SetItem(index, item); } // Every item in the collection should be registered to these handlers // so that we can handle renames void item_Changing(object sender, AXmlObjectEventArgs e) { RemoveFromHashtable((AXmlAttribute)e.Object); } void item_Changed(object sender, AXmlObjectEventArgs e) { AddToHashtable((AXmlAttribute)e.Object); } } }