| Newsgroups |
gmane.comp.gnome.mono.patches |
| Message-ID |
<000001418251e5e6-c25f307b-5f66-4eb2-9751-9323c2123d43-000000@email.amazonses.com> |
Branch: refs/heads/master
Home: https://github.com/mono/monodevelop
Compare: https://github.com/mono/monodevelop/compare/26871acc772a...50e8653c5ead
Commit: 50e8653c5ead8ae82449064e3183eb1169abb52c
Author: Mike Krüger <[email protected]> (mkrueger)
Date: 2013-10-04 07:13:10 GMT
URL: https://github.com/mono/monodevelop/commit/50e8653c5ead8ae82449064e3183eb1169abb52c
Fixed 'Bug 15150 - Exception in text editor chain'.
Changed paths:
M main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/CSharpCompletionTextEditorExtension.cs
Modified: main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/CSharpCompletionTextEditorExtension.cs
===================================================================
@@ -284,6 +284,8 @@ ICompletionContextProvider CreateContextProvider ()
CSharpTypeResolveContext CreateTypeResolveContext ()
{
var compilation = UnresolvedFileCompilation;
+ if (compilation == null)
+ return null;
var rctx = new CSharpTypeResolveContext (compilation.MainAssembly);
var loc = TextEditorData.Caret.Location;
rctx = rctx.WithUsingScope (CSharpUnresolvedFile.GetUsingScope (loc).Resolve (compilation));
@@ -320,7 +322,8 @@ ICompletionDataList InternalHandleCodeCompletion (CodeCompletionContext completi
var list = new CSharpCompletionDataList ();
list.Resolver = CSharpUnresolvedFile != null ? CSharpUnresolvedFile.GetResolver (UnresolvedFileCompilation, Document.Editor.Caret.Location) : new CSharpResolver (Compilation);
var ctx = CreateTypeResolveContext ();
-
+ if (ctx == null)
+ return null;
var completionDataFactory = new CompletionDataFactory (this, new CSharpResolver (ctx));
var engine = new CSharpCompletionEngine (
data.Document,
@@ -392,12 +395,15 @@ static bool HasAllUsedParameters (IParameterDataProvider provider, List<string>
}
public override int GuessBestMethodOverload (IParameterDataProvider provider, int currentOverload)
{
+ var ctx = CreateTypeResolveContext ();
+ if (ctx == null)
+ return -1;
var engine = new CSharpParameterCompletionEngine (
TextEditorData.Document,
CreateContextProvider (),
this,
Document.GetProjectContext (),
- CreateTypeResolveContext ()
+ ctx
);
List<string> list;
int cparam = engine.GetCurrentParameterIndex (provider.StartOffset, document.Editor.Caret.Offset, out list);
@@ -550,13 +556,17 @@ public override ParameterDataProvider HandleParameterCompletion (CodeCompletionC
// return null;
if (Unit == null || CSharpUnresolvedFile == null)
return null;
+ var ctx = CreateTypeResolveContext ();
+ if (ctx == null)
+ return null;
+
try {
var engine = new CSharpParameterCompletionEngine (
TextEditorData.Document,
CreateContextProvider (),
this,
Document.GetProjectContext (),
- CreateTypeResolveContext ()
+ ctx
);
return engine.GetParameterDataProvider (completionContext.TriggerOffset, completionChar) as ParameterDataProvider;
} catch (Exception e) {
@@ -592,12 +602,18 @@ List<string> GetUsedNamespaces ()
public override bool GetParameterCompletionCommandOffset (out int cpos)
{
+ var ctx = CreateTypeResolveContext ();
+ if (ctx == null) {
+ cpos = -1;
+ return false;
+ }
+
var engine = new CSharpParameterCompletionEngine (
TextEditorData.Document,
CreateContextProvider (),
this,
Document.GetProjectContext (),
- CreateTypeResolveContext ()
+ ctx
);
engine.SetOffset (document.Editor.Caret.Offset);
return engine.GetParameterCompletionCommandOffset (out cpos);
@@ -605,13 +621,17 @@ public override bool GetParameterCompletionCommandOffset (out int cpos)
public override int GetCurrentParameterIndex (int startOffset)
{
+ var ctx = CreateTypeResolveContext ();
+ if (ctx == null)
+ return -1;
+
var engine = new CSharpParameterCompletionEngine (
TextEditorData.Document,
CreateContextProvider (),
this,
Document.GetProjectContext (),
- CreateTypeResolveContext ()
- );
+ ctx
+ );
List<string> list;
return engine.GetCurrentParameterIndex (startOffset, document.Editor.Caret.Offset, out list);
}
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches