Skip to content

Commit d8f17d8

Browse files
author
SlavaRa
authored
[Haxe] Support dropped for 'c'.code (#73)
1 parent d5d37de commit d8f17d8

File tree

5 files changed

+20
-47
lines changed

5 files changed

+20
-47
lines changed

PostfixCodeCompletion.Tests/PostfixCodeCompletion.Tests.csproj

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
<ItemGroup>
5151
<Reference Include="NSubstitute, Version=2.0.3.0, Culture=neutral, PublicKeyToken=92dd2e9066daa5ca, processorArchitecture=MSIL">
5252
<HintPath>..\..\..\..\packages\NSubstitute.2.0.3\lib\net40\NSubstitute.dll</HintPath>
53-
<Private>True</Private>
53+
<Private>True</Private>
5454
</Reference>
5555
<Reference Include="nunit.framework, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
5656
<HintPath>..\..\..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
@@ -87,7 +87,6 @@
8787
<EmbeddedResource Include="Test Snippets\as3\postfixgenerators\var.fds" />
8888
<EmbeddedResource Include="Test Snippets\as3\postfixgenerators\while.fds" />
8989
<EmbeddedResource Include="Test Snippets\as3\postfixgenerators\trace.fds" />
90-
<EmbeddedResource Include="Test Snippets\haxe\postfixgenerators\code.fds" />
9190
<EmbeddedResource Include="Test Snippets\haxe\postfixgenerators\dowhile.fds" />
9291
<EmbeddedResource Include="Test Snippets\haxe\postfixgenerators\else.fds" />
9392
<EmbeddedResource Include="Test Snippets\haxe\postfixgenerators\for.fds" />
@@ -179,7 +178,7 @@
179178
<ProjectReference Include="..\..\..\..\PluginCore\PluginCore.csproj">
180179
<Project>{61885F70-B4DC-4B44-852D-5D6D03F2A734}</Project>
181180
<Name>PluginCore</Name>
182-
<Private>False</Private>
181+
<Private>False</Private>
183182
</ProjectReference>
184183
<ProjectReference Include="..\..\..\..\Tests\External\Plugins\ASCompletion.Tests\ASCompletion.Tests.csproj">
185184
<Project>{ABC71D26-295C-4C6C-B6DE-320AD49EEF79}</Project>
@@ -188,7 +187,7 @@
188187
<ProjectReference Include="..\..\ASCompletion\ASCompletion.csproj">
189188
<Project>{4EBF2653-9654-4E40-880E-0046B3D6210E}</Project>
190189
<Name>ASCompletion</Name>
191-
<Private>False</Private>
190+
<Private>False</Private>
192191
</ProjectReference>
193192
<ProjectReference Include="..\PostfixCodeCompletion\PostfixCodeCompletion.csproj">
194193
<Project>{e511b03b-81fd-4c39-b587-211f2a1603a1}</Project>

PostfixCodeCompletion.Tests/Test Snippets/haxe/postfixgenerators/code.fds

Lines changed: 0 additions & 1 deletion
This file was deleted.

PostfixCodeCompletion/Helpers/ScintillaControlHelper.cs

Lines changed: 16 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
using System;
2-
using System.Collections.Generic;
1+
using System.Collections.Generic;
32
using System.Drawing;
43
using System.IO;
54
using System.Linq;
6-
using ASCompletion;
75
using ASCompletion.Completion;
86
using ASCompletion.Context;
97
using ASCompletion.Model;
@@ -110,32 +108,11 @@ internal static IEnumerable<ICompletionListItem> GetCompletionItems(Dictionary<s
110108
{
111109
var result = new List<ICompletionListItem>();
112110
if (templates.Count == 0) return result;
113-
var sci = PluginBase.MainForm.CurrentDocument.SciControl;
114-
Bitmap itemIcon = null;
115-
var haxeStringCode = false;
116-
var isHaxe = sci.ConfigurationLanguage.ToLower() == "haxe";
117-
if (isHaxe)
118-
{
119-
var target = GetCompletionTarget(expr);
120-
if (target?.Type == ASContext.Context.Features.stringKey)
121-
{
122-
var pos = ASGenerator.GetStartOfStatement(sci, sci.CurrentPos, expr);
123-
haxeStringCode = sci.CharAt(pos) == '"' && sci.CharAt(pos + 1) != '\\' && sci.CharAt(pos + 2) == '"';
124-
if (haxeStringCode) itemIcon = (Bitmap) ASContext.Panel.GetIcon(PluginUI.ICON_PROPERTY);
125-
}
126-
}
127111
foreach (var pathToTemplate in templates)
128112
{
129113
var fileName = Path.GetFileNameWithoutExtension(pathToTemplate.Key);
130-
if (isHaxe && fileName == "code" && !haxeStringCode) continue;
131114
var template = TemplateUtils.ProcessTemplate(pattern, pathToTemplate.Value, expr);
132-
var item = new PostfixCompletionItem(fileName, template, expr) {Pattern = pattern};
133-
if (isHaxe && fileName == "code" && itemIcon != null)
134-
{
135-
item.Icon = itemIcon;
136-
itemIcon = null;
137-
}
138-
result.Add(item);
115+
result.Add(new PostfixCompletionItem(fileName, template, expr) {Pattern = pattern});
139116
}
140117
return result;
141118
}
@@ -200,30 +177,30 @@ internal static bool IsHash(MemberModel target)
200177
var type = target.Type;
201178
return type == ASContext.Context.Features.objectKey || type == "Dictionary";
202179
case "haxe":
203-
Func<MemberModel, bool> isIterator = member =>
204-
{
205-
var cleanType = Reflector.ASGenerator.CleanType(member.Type);
206-
return cleanType == "Iterator" || cleanType == "Iterable";
207-
};
208-
if (isIterator(target)) return true;
209-
if (target is ClassModel)
180+
if (IsIterator(target)) return true;
181+
if (target is ClassModel classModel)
210182
{
211-
var classModel = target as ClassModel;
212183
while (classModel != null && !classModel.IsVoid())
213184
{
214-
if (classModel.Members.Items.Any(isIterator)) return true;
185+
if (classModel.Members.Items.Any(IsIterator)) return true;
215186
classModel.ResolveExtends();
216187
classModel = classModel.Extends;
217188
}
218189
}
219190
return false;
191+
192+
bool IsIterator(MemberModel member)
193+
{
194+
var cleanType = Reflector.ASGenerator.CleanType(member.Type);
195+
return cleanType == "Iterator" || cleanType == "Iterable";
196+
}
220197
default: return false;
221198
}
222199
}
223200

224201
internal static bool IsNumber(MemberModel target)
225202
{
226-
var type = target is ClassModel ? ((ClassModel)target).QualifiedName : target.Type;
203+
var type = target is ClassModel model ? model.QualifiedName : target.Type;
227204
if (type == ASContext.Context.Features.numberKey) return true;
228205
var language = PluginBase.MainForm.CurrentDocument.SciControl.ConfigurationLanguage.ToLower();
229206
var features = Settings.LanguageFeatures.First(it => it.Language == language);
@@ -248,8 +225,8 @@ public PostfixCompletionItem(string label, string template, ASResult expr)
248225
string pattern;
249226
public virtual string Pattern
250227
{
251-
get { return pattern ?? TemplateUtils.PatternMember; }
252-
set { pattern = value; }
228+
get => pattern ?? TemplateUtils.PatternMember;
229+
set => pattern = value;
253230
}
254231

255232
public string Value
@@ -264,8 +241,8 @@ public string Value
264241
Bitmap icon;
265242
public Bitmap Icon
266243
{
267-
get { return icon ?? (icon = (Bitmap)PluginBase.MainForm.FindImage("341")); }
268-
set { icon = value; }
244+
get => icon ?? (icon = (Bitmap)PluginBase.MainForm.FindImage("341"));
245+
set => icon = value;
269246
}
270247

271248
string description;

README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,7 @@ Available templates for **AS3**:
3939
* `.trace` - surrounds expression with `trace(expr);`
4040

4141
Available templates for **Haxe**:
42-
* `.code` – for `String` adds `code` to completion list
43-
* `.if` – checks boolean expression to be true `if (expr)`
42+
* `.if` – checks boolean expression to be true `if (expr)`
4443
* `.else` – checks boolean expression to be false `if (!expr)`
4544
* `.null` – checks nullable expression to be null `if (expr == null)`
4645
* `.notnull` – checks expression to be non-null `if (expr != null)`

Snippets/haxe/postfixgenerators/code.fds

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)