Skip to content

Commit 4afb024

Browse files
author
slavara
committed
Merge branch 'feature/support_for_fd_development' into develop
2 parents 6e19e01 + dab36f3 commit 4afb024

File tree

8 files changed

+60
-63
lines changed

8 files changed

+60
-63
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package {
22
public class Main {
33
public function Main() {
4-
const number:Number = 1;
4+
const intValue:int = 1;
55
}
66
}
77
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package {
22
public class Main {
33
public function Main() {
4-
var number:Number = 1;
4+
var intValue:int = 1;
55
}
66
}
77
}

PostfixCodeCompletion/Completion/Complete.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@ public class PCCCompleteFactory
2222
{
2323
public IPCCComplete CreateComplete()
2424
{
25-
switch (PluginBase.CurrentProject)
25+
return PluginBase.CurrentProject switch
2626
{
27-
case AS3Project _: return new PCCASComplete();
28-
case HaxeProject _: return new PCCHaxeComplete();
29-
default: return new PCCComplete();
30-
}
27+
AS3Project _ => new PCCASComplete(),
28+
HaxeProject _ => new PCCHaxeComplete(),
29+
_ => new PCCComplete()
30+
};
3131
}
3232
}
3333

@@ -215,7 +215,7 @@ void OnHaxeCompletionModeChanged()
215215
if (!(PluginBase.CurrentProject is HaxeProject)) return;
216216
var settings = (HaXeSettings) ((Context) ASContext.GetLanguageContext("haxe")).Settings;
217217
var sdk = settings.InstalledSDKs.FirstOrDefault(it => it.Path == PluginBase.CurrentProject.CurrentSDK);
218-
if (sdk == null || new SemVer(sdk.Version) > "3.2.0") return;
218+
if (sdk == null || new SemVer(sdk.Version) < "3.2.0") return;
219219
switch (settings.CompletionMode)
220220
{
221221
case HaxeCompletionModeEnum.CompletionServer:

PostfixCodeCompletion/Completion/HaxeComplete.cs

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -153,12 +153,11 @@ static void EscapeMacros(IList<string> args)
153153

154154
int GetDisplayPosition()
155155
{
156-
switch (CompilerService)
156+
return CompilerService switch
157157
{
158-
case HaxeCompilerService.Type:
159-
return Expr.Context.Position + 1;
160-
}
161-
return Expr.Context.Position;
158+
HaxeCompilerService.Type => Expr.Context.Position + 1,
159+
_ => Expr.Context.Position
160+
};
162161
}
163162

164163
HaxeCompleteStatus ParseLines(string lines)
@@ -168,15 +167,11 @@ HaxeCompleteStatus ParseLines(string lines)
168167
Errors = lines.Trim();
169168
return HaxeCompleteStatus.Error;
170169
}
171-
try
170+
try
172171
{
173-
using (TextReader stream = new StringReader(lines))
174-
{
175-
using (var reader = new XmlTextReader(stream))
176-
{
177-
return ProcessResponse(reader);
178-
}
179-
}
172+
using var stream = new StringReader(lines);
173+
using var reader = new XmlTextReader(stream);
174+
return ProcessResponse(reader);
180175
}
181176
catch (Exception ex)
182177
{

PostfixCodeCompletion/Helpers/ScintillaControlHelper.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -241,12 +241,12 @@ public string Value
241241
Bitmap icon;
242242
public Bitmap Icon
243243
{
244-
get => icon ?? (icon = (Bitmap)PluginBase.MainForm.FindImage("341"));
244+
get => icon ??= (Bitmap)PluginBase.MainForm.FindImage("341");
245245
set => icon = value;
246246
}
247247

248248
string description;
249-
public string Description => description ?? (description = TemplateUtils.GetDescription(expr, template, Pattern));
249+
public string Description => description ??= TemplateUtils.GetDescription(expr, template, Pattern);
250250

251251
public new string ToString() => Description;
252252

PostfixCodeCompletion/Helpers/TemplateUtils.cs

Lines changed: 35 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -41,30 +41,39 @@ internal static class TemplateUtils
4141
PatternType
4242
};
4343

44-
internal static bool GetHasTemplates() => GetHasTemplates(PluginBase.MainForm.CurrentDocument.SciControl.ConfigurationLanguage.ToLower());
44+
internal static bool GetHasTemplates()
45+
=> PluginBase.MainForm.CurrentDocument?.SciControl is { } sci
46+
&& GetHasTemplates(sci.ConfigurationLanguage.ToLower());
4547

4648
internal static bool GetHasTemplates(string language)
47-
{
48-
return GetHasTemplates(PathHelper.SnippetDir, language) || Settings.CustomSnippetDirectories.Any(it => GetHasTemplates(it.Path, language));
49-
}
49+
=> GetHasTemplates(PathHelper.SnippetDir, language)
50+
|| Settings.CustomSnippetDirectories.Any(it => GetHasTemplates(it.Path, language));
5051

5152
static bool GetHasTemplates(string snippetPath, string language)
5253
{
5354
snippetPath = GetTemplatesDir(snippetPath, language);
54-
return Directory.Exists(snippetPath) && Directory.GetFiles(snippetPath, "*.fds").Length > 0;
55+
return Directory.Exists(snippetPath) && Directory.EnumerateFiles(snippetPath, "*.fds").Any();
5556
}
5657

57-
static string GetTemplatesDir(string snippetPath) => GetTemplatesDir(snippetPath, PluginBase.MainForm.CurrentDocument.SciControl.ConfigurationLanguage.ToLower());
58+
static string GetTemplatesDir(string snippetPath)
59+
{
60+
return PluginBase.MainForm.CurrentDocument?.SciControl is { } sci
61+
? GetTemplatesDir(snippetPath, sci.ConfigurationLanguage.ToLower())
62+
: null;
63+
}
5864

59-
static string GetTemplatesDir(string snippetPath, string language) => Path.Combine(Path.Combine(snippetPath, language), PostfixGenerators);
65+
static string GetTemplatesDir(string snippetPath, string language) => Path.Combine(snippetPath, language, PostfixGenerators);
6066

6167
internal static Dictionary<string, string> GetTemplates(string type)
6268
{
63-
var pattern = Templates.Contains(type) ? string.Format(PatternBlock, type) : string.Format(PatternTBlock, type);
6469
var result = new Dictionary<string, string>();
6570
var paths = Settings.CustomSnippetDirectories.Select(it => GetTemplatesDir(it.Path)).ToList();
6671
paths.Add(GetTemplatesDir(PathHelper.SnippetDir));
6772
paths.RemoveAll(s => !Directory.Exists(s));
73+
if (paths.Count == 0) return result;
74+
var pattern = Templates.Contains(type)
75+
? string.Format(PatternBlock, type)
76+
: string.Format(PatternTBlock, type);
6877
foreach (var path in paths)
6978
{
7079
foreach (var file in Directory.GetFiles(path, "*.fds"))
@@ -83,11 +92,12 @@ internal static string GetTemplate(string snippet, string[] types)
8392
var result = string.Empty;
8493
foreach (var type in types)
8594
{
86-
var r = GetTemplate(snippet, type);
87-
if (!string.IsNullOrEmpty(r) && r != result) result = r;
95+
var template = GetTemplate(snippet, type);
96+
if (!string.IsNullOrEmpty(template) && template != result) result = template;
8897
}
8998
return result;
9099
}
100+
91101
internal static string GetTemplate(string snippet, string type)
92102
{
93103
var marker = $"#pcc:{type}";
@@ -105,12 +115,9 @@ internal static string GetTemplate(string snippet, string type)
105115

106116
static string GetSnippet(string file)
107117
{
108-
string content;
109-
using (var reader = new StreamReader(File.OpenRead(file)))
110-
{
111-
content = reader.ReadToEnd();
112-
reader.Close();
113-
}
118+
using var reader = new StreamReader(File.OpenRead(file));
119+
var content = reader.ReadToEnd();
120+
reader.Close();
114121
return content;
115122
}
116123

@@ -127,27 +134,24 @@ internal static KeyValuePair<string, string> GetVarNameToQualifiedName(ASResult
127134
var sci = PluginBase.MainForm.CurrentDocument.SciControl;
128135
var lineNum = sci.CurrentLine;
129136
var word = Reflector.ASGenerator.GetStatementReturnType(sci, sci.GetLine(lineNum), sci.PositionFromLine(lineNum))?.Word;
130-
var varname = string.Empty;
131-
if (member?.Name != null) varname = Reflector.ASGenerator.GuessVarName(member.Name, type);
137+
var value = string.Empty;
138+
if (member?.Name != null) value = Reflector.ASGenerator.GuessVarName(member.Name, type);
132139
if (!string.IsNullOrEmpty(word) && char.IsDigit(word[0])) word = null;
133140
if (!string.IsNullOrEmpty(word) && (string.IsNullOrEmpty(type) || Regex.IsMatch(type, "(<[^]]+>)"))) word = null;
134141
if (!string.IsNullOrEmpty(type) && type == ASContext.Context.Features.voidKey) type = null;
135-
if (string.IsNullOrEmpty(varname)) varname = Reflector.ASGenerator.GuessVarName(word, type);
136-
if (!string.IsNullOrEmpty(varname) && varname == word) varname = $"{varname}1";
137-
return new KeyValuePair<string, string>(varname, type);
142+
if (string.IsNullOrEmpty(value)) value = Reflector.ASGenerator.GuessVarName(word, type);
143+
if (!string.IsNullOrEmpty(value) && value == word) value = $"{value}1";
144+
return new KeyValuePair<string, string>(value, type);
138145
}
139146

140147
internal static string ProcessTemplate(string pattern, string template, ASResult expr)
141148
{
142-
switch (pattern)
149+
return pattern switch
143150
{
144-
case PatternCollection:
145-
return ProcessCollectionTemplate(template, expr);
146-
case PatternHash:
147-
return ProcessHashTemplate(template, expr);
148-
default:
149-
return template;
150-
}
151+
PatternCollection => ProcessCollectionTemplate(template, expr),
152+
PatternHash => ProcessHashTemplate(template, expr),
153+
_ => template
154+
};
151155
}
152156

153157
internal static string ProcessMemberTemplate(string template, ASResult expr)
@@ -203,7 +207,7 @@ internal static string GetDescription(ASResult expr, string template, string pcc
203207
{
204208
var sci = PluginBase.MainForm.CurrentDocument.SciControl;
205209
var position = ScintillaControlHelper.GetDotLeftStartPosition(sci, sci.CurrentPos - 1);
206-
var exprStartPosition = ASGenerator.GetStartOfStatement(sci, sci.CurrentPos, expr);
210+
var exprStartPosition = ASGenerator.GetStartOfStatement(expr);
207211
var lineNum = sci.CurrentLine;
208212
var line = sci.GetLine(lineNum);
209213
var snippet = line.Substring(exprStartPosition - sci.PositionFromLine(lineNum), position - exprStartPosition);
@@ -222,7 +226,7 @@ internal static void InsertSnippetText(ASResult expr, string template, string pc
222226
var position = ScintillaControlHelper.GetDotLeftStartPosition(sci, sci.CurrentPos - 1);
223227
sci.SetSel(position, sci.CurrentPos);
224228
sci.ReplaceSel(string.Empty);
225-
position = ASGenerator.GetStartOfStatement(sci, sci.CurrentPos, expr);
229+
position = ASGenerator.GetStartOfStatement(expr);
226230
sci.SetSel(position, sci.CurrentPos);
227231
var snippet = Regex.Replace(template, string.Format(PatternBlock, pccpattern), sci.SelText, RegexOptions.IgnoreCase | RegexOptions.Multiline);
228232
snippet = ProcessMemberTemplate(snippet, expr);

PostfixCodeCompletion/PluginMain.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public class PluginMain : IPlugin
1919

2020
public int Api => 1;
2121

22-
public string Name => "PostfixCodeCompletion";
22+
public string Name => nameof(PostfixCodeCompletion);
2323

2424
public string Guid => "21d9ab3e-93e4-4460-9298-c62f87eed7ba";
2525

@@ -97,14 +97,12 @@ void AddEventHandlers()
9797
{
9898
EventManager.AddEventHandler(this, EventType.Command);
9999
EventManager.AddEventHandler(this, EventType.Keys, HandlingPriority.High);
100-
UITools.Manager.OnCharAdded += OnCharAdded;
100+
UITools.Manager.OnCharAdded += (_, value) => Complete.OnCharAdded(value);
101101
}
102102

103103
/// <summary>
104104
/// Saves the plugin settings
105105
/// </summary>
106106
void SaveSettings() => ObjectSerializer.Serialize(settingFilename, Settings);
107-
108-
static void OnCharAdded(ScintillaControl sender, int value) => Complete.OnCharAdded(value);
109107
}
110108
}

PostfixCodeCompletion/Settings.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,17 @@ internal class Settings
1717
[Editor(typeof(ArrayEditor), typeof(UITypeEditor))]
1818
public Folder[] CustomSnippetDirectories
1919
{
20-
get { return customSnippetDirectories ?? (customSnippetDirectories = new Folder[] {}); }
21-
set { customSnippetDirectories = value; }
20+
get => customSnippetDirectories ??= Array.Empty<Folder>();
21+
set => customSnippetDirectories = value;
2222
}
2323

2424
bool disableTypeDeclaration = true;
2525

2626
[Category("Haxe"), DisplayName("Disable type declaration for variables"), DefaultValue(true)]
2727
public bool DisableTypeDeclaration
2828
{
29-
get { return disableTypeDeclaration; }
30-
set { disableTypeDeclaration = value; }
29+
get => disableTypeDeclaration;
30+
set => disableTypeDeclaration = value;
3131
}
3232

3333
[Category("Advanced"), DisplayName("Features of languages")]
@@ -46,6 +46,6 @@ internal class LanguageFeatures
4646
public string Language { get; set; } = string.Empty;
4747

4848
[DisplayName("Numeric types")]
49-
public string[] Numeric { get; set; } = {};
49+
public string[] Numeric { get; set; } = Array.Empty<string>();
5050
}
5151
}

0 commit comments

Comments
 (0)