Skip to content

Commit 0d23212

Browse files
author
SlavaRa
committed
Merge pull request #29 from SlavaRa/develop
[AS3] Fixes a bug that occurs when you edit comments
2 parents ff99ea0 + dd0be4d commit 0d23212

File tree

5 files changed

+56
-56
lines changed

5 files changed

+56
-56
lines changed

PostfixCodeCompletion/Completion/CompletionServerCompletionHandler.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,7 @@ static void OnOutputDataReceived(object sender, DataReceivedEventArgs e)
8787

8888
void OnErrorDataReceived(object sender, DataReceivedEventArgs e)
8989
{
90-
if (e.Data == null) return;
91-
if (!Regex.IsMatch(e.Data, "Error.*--wait")) return;
90+
if (e.Data == null || !Regex.IsMatch(e.Data, "Error.*--wait")) return;
9291
if (!failure && FallbackNeeded != null) FallbackNeeded(true);
9392
failure = true;
9493
}

PostfixCodeCompletion/Completion/HaxeComplete.cs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ public HaxeComplete(ScintillaControl sci, ASResult expr, bool autoHide, IHaxeCom
5050

5151
static string GetTempFileName()
5252
{
53-
string tempFolder = Path.Combine(Path.GetTempPath(), "FlashDevelop");
54-
string projDirectoryName = Path.GetDirectoryName(PluginBase.CurrentProject.ProjectPath);
53+
var tempFolder = Path.Combine(Path.GetTempPath(), "FlashDevelop");
54+
var projDirectoryName = Path.GetDirectoryName(PluginBase.CurrentProject.ProjectPath);
5555
projDirectoryName = Path.GetDirectoryName(projDirectoryName);
5656
return PluginBase.MainForm.CurrentDocument.FileName.Replace(projDirectoryName, tempFolder);
5757
}
@@ -60,9 +60,9 @@ public void GetPositionType(HaxeCompleteResultHandler<HaxeCompleteResult> callba
6060
{
6161
var pos = Sci.CurrentPos;
6262
Sci.SetSel(pos, Expr.Context.Position);
63-
string selText = Sci.SelText;
63+
var selText = Sci.SelText;
6464
Sci.ReplaceSel(string.Empty);
65-
string directoryName = Path.GetDirectoryName(tempFileName);
65+
var directoryName = Path.GetDirectoryName(tempFileName);
6666
if (!Directory.Exists(directoryName)) Directory.CreateDirectory(directoryName);
6767
FileHelper.WriteFile(tempFileName, Sci.Text, Sci.Encoding, false);
6868
if (!string.IsNullOrEmpty(selText))
@@ -102,7 +102,7 @@ string[] BuildHxmlArgs()
102102
{
103103
"-cp " + Path.GetDirectoryName(tempFileName)
104104
};
105-
string mode = "";
105+
var mode = "";
106106
if (CompilerService == HaxeCompilerService.Type) mode = "@type";
107107
hxmlArgs.Insert(0, string.Format("--display {0}@{1}{2}", tempFileName, pos, mode));
108108
hxmlArgs.Insert(1, "-D use_rtti_doc");
@@ -132,7 +132,7 @@ HaxeCompleteStatus ParseLines(string lines)
132132
{
133133
using (TextReader stream = new StringReader(lines))
134134
{
135-
using (XmlTextReader reader = new XmlTextReader(stream))
135+
using (var reader = new XmlTextReader(stream))
136136
{
137137
return ProcessResponse(reader);
138138
}
@@ -159,8 +159,8 @@ HaxeCompleteStatus ProcessResponse(XmlReader reader)
159159

160160
void ProcessType(XmlReader reader)
161161
{
162-
string[] parts = Expr.Context.Value.Split('.');
163-
string name = parts[parts.Length - 1];
162+
var parts = Expr.Context.Value.Split('.');
163+
var name = parts[parts.Length - 1];
164164
var type = new MemberModel {Name = name};
165165
ExtractType(reader, type);
166166
result.Type = type;
@@ -176,14 +176,14 @@ static void ExtractType(XmlReader reader, MemberModel member)
176176
}
177177
else
178178
{
179-
string[] types = type.Split(new[] { "->" }, StringSplitOptions.RemoveEmptyEntries);
179+
var types = type.Split(new[] { "->" }, StringSplitOptions.RemoveEmptyEntries);
180180
if (types.Length > 1)
181181
{
182182
member.Flags = FlagType.Function;
183183
member.Parameters = new List<MemberModel>();
184-
for (int i = 0; i < types.Length - 1; i++)
184+
for (var i = 0; i < types.Length - 1; i++)
185185
{
186-
MemberModel param = new MemberModel(types[i].Trim(), string.Empty, FlagType.ParameterVar, Visibility.Public);
186+
var param = new MemberModel(types[i].Trim(), string.Empty, FlagType.ParameterVar, Visibility.Public);
187187
member.Parameters.Add(param);
188188
}
189189
member.Type = types[types.Length - 1].Trim();

PostfixCodeCompletion/Helpers/ScintillaControlHelper.cs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,17 @@ static class ScintillaControlHelper
88
{
99
internal static int GetExpressionStartPosition(ScintillaControl sci, int position, ASResult expr)
1010
{
11-
string characters = ScintillaControl.Configuration.GetLanguage(sci.ConfigurationLanguage).characterclass.Characters;
12-
int result = 0;
13-
int arrCount = 0;
14-
int parCount = 0;
15-
int genCount = 0;
16-
int braCount = 0;
17-
int dQuotes = 0;
18-
int sQuotes = 0;
19-
for (int i = position; i > 0; i--)
11+
var characters = ScintillaControl.Configuration.GetLanguage(sci.ConfigurationLanguage).characterclass.Characters;
12+
var result = 0;
13+
var arrCount = 0;
14+
var parCount = 0;
15+
var genCount = 0;
16+
var braCount = 0;
17+
var dQuotes = 0;
18+
var sQuotes = 0;
19+
for (var i = position; i > 0; i--)
2020
{
21-
char c = (char)sci.CharAt(i - 1);
21+
var c = (char)sci.CharAt(i - 1);
2222
if (c == ']') arrCount++;
2323
else if (c == '[' && arrCount > 0) arrCount--;
2424
else if (c == ')') parCount++;
@@ -54,10 +54,10 @@ internal static int GetExpressionStartPosition(ScintillaControl sci, int positio
5454

5555
internal static int GetWordLeftStartPosition(ScintillaControl sci, int position, bool skipWhiteSpace)
5656
{
57-
string characters = ScintillaControl.Configuration.GetLanguage(sci.ConfigurationLanguage).characterclass.Characters;
57+
var characters = ScintillaControl.Configuration.GetLanguage(sci.ConfigurationLanguage).characterclass.Characters;
5858
while (position >= 0)
5959
{
60-
char c = (char) sci.CharAt(position);
60+
var c = (char) sci.CharAt(position);
6161
if (c <= ' ')
6262
{
6363
if (!skipWhiteSpace) return position + 1;
@@ -71,7 +71,7 @@ internal static int GetWordLeftStartPosition(ScintillaControl sci, int position,
7171

7272
internal static int GetDotLeftStartPosition(ScintillaControl sci, int position)
7373
{
74-
for (int i = sci.CurrentPos; i > 0; i--)
74+
for (var i = sci.CurrentPos; i > 0; i--)
7575
{
7676
if ((char)sci.CharAt(i) != '.') continue;
7777
position = i;

PostfixCodeCompletion/Helpers/TemplateUtils.cs

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -72,18 +72,18 @@ static string GetTemplatesDir(string snippetPath, string language)
7272

7373
internal static Dictionary<string, string> GetTemplates(string type)
7474
{
75-
string pattern = Templates.Contains(type) ? string.Format(PATTERN_BLOCK, type) : string.Format(PATTERN_T_BLOCK, type);
76-
Dictionary<string, string> result = new Dictionary<string, string>();
77-
List<string> paths = Settings.CustomSnippetDirectories.Select(it => GetTemplatesDir(it.Path)).ToList();
75+
var pattern = Templates.Contains(type) ? string.Format(PATTERN_BLOCK, type) : string.Format(PATTERN_T_BLOCK, type);
76+
var result = new Dictionary<string, string>();
77+
var paths = Settings.CustomSnippetDirectories.Select(it => GetTemplatesDir(it.Path)).ToList();
7878
paths.Add(GetTemplatesDir(PathHelper.SnippetDir));
7979
paths.RemoveAll(s => !Directory.Exists(s));
80-
foreach (string path in paths)
80+
foreach (var path in paths)
8181
{
82-
foreach (string file in Directory.GetFiles(path, "*.fds"))
82+
foreach (var file in Directory.GetFiles(path, "*.fds"))
8383
{
84-
string content = GetFileContent(file);
85-
string marker = "#pcc:" + type;
86-
int startIndex = content.IndexOf(marker, StringComparison.Ordinal);
84+
var content = GetFileContent(file);
85+
var marker = "#pcc:" + type;
86+
var startIndex = content.IndexOf(marker, StringComparison.Ordinal);
8787
if (startIndex != -1)
8888
{
8989
startIndex += marker.Length;
@@ -101,7 +101,7 @@ internal static Dictionary<string, string> GetTemplates(string type)
101101
static string GetFileContent(string file)
102102
{
103103
string content;
104-
using (StreamReader reader = new StreamReader(File.OpenRead(file)))
104+
using (var reader = new StreamReader(File.OpenRead(file)))
105105
{
106106
content = reader.ReadToEnd();
107107
reader.Close();
@@ -112,13 +112,13 @@ static string GetFileContent(string file)
112112
internal static KeyValuePair<string, string> GetVarNameToQualifiedName(ASResult expr)
113113
{
114114
string type = null;
115-
string varname = string.Empty;
116-
string word = string.Empty;
117-
MemberModel member = expr.Member;
115+
var varname = string.Empty;
116+
var word = string.Empty;
117+
var member = expr.Member;
118118
if (member != null && member.Type != null) type = member.Type;
119119
else
120120
{
121-
ClassModel cType = expr.Type;
121+
var cType = expr.Type;
122122
if (cType != null && cType.Name != null) type = cType.QualifiedName;
123123
}
124124
if (member != null && member.Name != null) varname = Reflector.ASGenerator.GuessVarName(member.Name, type);
@@ -133,8 +133,8 @@ internal static KeyValuePair<string, string> GetVarNameToQualifiedName(ASResult
133133
internal static string ProcessMemberTemplate(string template, ASResult expr)
134134
{
135135
var varNameToQualifiedName = GetVarNameToQualifiedName(expr);
136-
string name = varNameToQualifiedName.Key.ToLower();
137-
string type = varNameToQualifiedName.Value;
136+
var name = varNameToQualifiedName.Key.ToLower();
137+
var type = varNameToQualifiedName.Value;
138138
template = ASCompletion.Completion.TemplateUtils.ReplaceTemplateVariable(template, "Name", name);
139139
if (ASContext.Context is Context && Settings != null && Settings.DisableTypeDeclaration) type = null;
140140
if (!string.IsNullOrEmpty(type)) type = MemberModel.FormatType(Reflector.ASGenerator.GetShortType(type));
@@ -144,7 +144,7 @@ internal static string ProcessMemberTemplate(string template, ASResult expr)
144144

145145
internal static string ProcessCollectionTemplate(string template, ASResult expr)
146146
{
147-
string type = expr.Member != null ? expr.Member.Type : expr.Type.QualifiedName;
147+
var type = expr.Member != null ? expr.Member.Type : expr.Type.QualifiedName;
148148
if (type.Contains("@")) type = type.Replace("@", ".<") + ">";
149149
type = Regex.Match(type, "<([^]]+)>").Groups[1].Value;
150150
type = Reflector.ASGenerator.GetShortType(type);
@@ -165,10 +165,10 @@ internal static string ProcessHashTemplate(string template, ASResult expr)
165165
{
166166
case "as2":
167167
case "as3":
168-
string type = expr.Member != null ? expr.Member.Type : expr.Type.QualifiedName;
168+
var type = expr.Member != null ? expr.Member.Type : expr.Type.QualifiedName;
169169
type = Reflector.ASGenerator.GetShortType(type);
170-
ContextFeatures features = ASContext.Context.Features;
171-
string objectKey = features.objectKey;
170+
var features = ASContext.Context.Features;
171+
var objectKey = features.objectKey;
172172
if (type == objectKey || type == "Dictionary")
173173
{
174174
template = template.Replace(PATTERN_COLLECTION_KEY_TYPE, type == objectKey ? features.stringKey : objectKey);
@@ -181,13 +181,13 @@ internal static string ProcessHashTemplate(string template, ASResult expr)
181181

182182
internal static string GetDescription(ASResult expr, string template, string pccpattern)
183183
{
184-
ScintillaControl sci = PluginBase.MainForm.CurrentDocument.SciControl;
185-
int position = ScintillaControlHelper.GetDotLeftStartPosition(sci, sci.CurrentPos - 1);
186-
int exprStartPosition = ScintillaControlHelper.GetExpressionStartPosition(sci, sci.CurrentPos, expr);
187-
int lineNum = sci.CurrentLine;
188-
string line = sci.GetLine(lineNum);
189-
string snippet = line.Substring(exprStartPosition - sci.PositionFromLine(lineNum), position - exprStartPosition);
190-
string result = template.Replace(SnippetHelper.BOUNDARY, string.Empty);
184+
var sci = PluginBase.MainForm.CurrentDocument.SciControl;
185+
var position = ScintillaControlHelper.GetDotLeftStartPosition(sci, sci.CurrentPos - 1);
186+
var exprStartPosition = ScintillaControlHelper.GetExpressionStartPosition(sci, sci.CurrentPos, expr);
187+
var lineNum = sci.CurrentLine;
188+
var line = sci.GetLine(lineNum);
189+
var snippet = line.Substring(exprStartPosition - sci.PositionFromLine(lineNum), position - exprStartPosition);
190+
var result = template.Replace(SnippetHelper.BOUNDARY, string.Empty);
191191
result = Regex.Replace(result, string.Format(PATTERN_BLOCK, pccpattern), snippet, RegexOptions.IgnoreCase | RegexOptions.Multiline);
192192
result = ProcessMemberTemplate(result, expr);
193193
result = ArgsProcessor.ProcessCodeStyleLineBreaks(result);
@@ -198,13 +198,13 @@ internal static string GetDescription(ASResult expr, string template, string pcc
198198

199199
internal static void InsertSnippetText(ASResult expr, string template, string pccpattern)
200200
{
201-
ScintillaControl sci = PluginBase.MainForm.CurrentDocument.SciControl;
202-
int position = ScintillaControlHelper.GetDotLeftStartPosition(sci, sci.CurrentPos - 1);
201+
var sci = PluginBase.MainForm.CurrentDocument.SciControl;
202+
var position = ScintillaControlHelper.GetDotLeftStartPosition(sci, sci.CurrentPos - 1);
203203
sci.SetSel(position, sci.CurrentPos);
204204
sci.ReplaceSel(string.Empty);
205205
position = ScintillaControlHelper.GetExpressionStartPosition(sci, sci.CurrentPos, expr);
206206
sci.SetSel(position, sci.CurrentPos);
207-
string snippet = Regex.Replace(template, string.Format(PATTERN_BLOCK, pccpattern), sci.SelText, RegexOptions.IgnoreCase | RegexOptions.Multiline);
207+
var snippet = Regex.Replace(template, string.Format(PATTERN_BLOCK, pccpattern), sci.SelText, RegexOptions.IgnoreCase | RegexOptions.Multiline);
208208
snippet = ProcessMemberTemplate(snippet, expr);
209209
snippet = ArgsProcessor.ProcessCodeStyleLineBreaks(snippet);
210210
sci.ReplaceSel(string.Empty);

PostfixCodeCompletion/PluginMain.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,7 @@ static ASResult GetPostfixCompletionExpr()
201201
var language = PluginBase.CurrentProject.Language;
202202
if (!ASContext.GetLanguageContext(language).IsFileValid || !TemplateUtils.GetHasTemplates(language)) return null;
203203
var sci = doc.SciControl;
204+
if (sci.PositionIsOnComment(sci.CurrentPos)) return null;
204205
var currentLine = sci.CurrentLine;
205206
var positionFromLine = sci.LineIndentPosition(currentLine);
206207
var position = -1;
@@ -495,7 +496,7 @@ static void OnHaxeCompletionModeChanged()
495496
else
496497
{
497498
completionModeHandler = new CompletionServerCompletionHandler(
498-
CreateHaxeProcess("--wait " + settings.CompletionServerPort),
499+
CreateHaxeProcess($"--wait {settings.CompletionServerPort}"),
499500
settings.CompletionServerPort
500501
);
501502
((CompletionServerCompletionHandler)completionModeHandler).FallbackNeeded += OnHaxeContextFallbackNeeded;

0 commit comments

Comments
 (0)