From f8eed16fb904064df665bfd81122578830023cce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20Kr=C3=BCger?= Date: Wed, 4 Jan 2012 10:08:56 +0100 Subject: [PATCH] Worked on completion engine API. --- .../Completion/CSharpCompletionEngine.cs | 6 ++++- .../Completion/CSharpCompletionEngineBase.cs | 26 +++++++++++++++---- .../CSharpParameterCompletionEngine.cs | 6 ++++- 3 files changed, 31 insertions(+), 7 deletions(-) diff --git a/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs b/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs index 41cc072f6f..7befba714f 100644 --- a/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs +++ b/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs @@ -57,8 +57,12 @@ namespace ICSharpCode.NRefactory.CSharp.Completion public bool CloseOnSquareBrackets; #endregion - public CSharpCompletionEngine (IDocument document, ICompletionDataFactory factory) + public CSharpCompletionEngine (IDocument document, ICompletionDataFactory factory, IProjectContent content, CSharpTypeResolveContext ctx, CompilationUnit unit, CSharpParsedFile parsedFile) : base (content, ctx, unit, parsedFile) { + if (document == null) + throw new ArgumentNullException ("document"); + if (factory == null) + throw new ArgumentNullException ("factory"); this.document = document; this.factory = factory; } diff --git a/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngineBase.cs b/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngineBase.cs index 4fbcff65c8..bfd0360f42 100644 --- a/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngineBase.cs +++ b/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngineBase.cs @@ -49,13 +49,13 @@ namespace ICSharpCode.NRefactory.CSharp.Completion protected IUnresolvedMember currentMember; #region Input properties - public CSharpTypeResolveContext ctx { get; set; } + public CSharpTypeResolveContext ctx { get; private set; } - public CompilationUnit Unit { get; set; } + public CompilationUnit Unit { get; private set; } - public CSharpParsedFile CSharpParsedFile { get; set; } + public CSharpParsedFile CSharpParsedFile { get; private set; } - public IProjectContent ProjectContent { get; set; } + public IProjectContent ProjectContent { get; private set; } ICompilation compilation; @@ -66,9 +66,25 @@ namespace ICSharpCode.NRefactory.CSharp.Completion return compilation; } } - #endregion + protected CSharpCompletionEngineBase (IProjectContent content, CSharpTypeResolveContext ctx, CompilationUnit unit, CSharpParsedFile parsedFile) + { + if (content == null) + throw new ArgumentNullException ("content"); + if (ctx == null) + throw new ArgumentNullException ("ctx"); + if (unit == null) + throw new ArgumentNullException ("unit"); + if (parsedFile == null) + throw new ArgumentNullException ("parsedFile"); + + this.ProjectContent = content; + this.ctx = ctx; + this.Unit = unit; + this.CSharpParsedFile = parsedFile; + } + IUnresolvedTypeDefinition FindInnerType (IUnresolvedTypeDefinition parent, TextLocation location) { if (parent == null) diff --git a/ICSharpCode.NRefactory.CSharp/Completion/CSharpParameterCompletionEngine.cs b/ICSharpCode.NRefactory.CSharp/Completion/CSharpParameterCompletionEngine.cs index eb203a45d5..6ad0c84469 100644 --- a/ICSharpCode.NRefactory.CSharp/Completion/CSharpParameterCompletionEngine.cs +++ b/ICSharpCode.NRefactory.CSharp/Completion/CSharpParameterCompletionEngine.cs @@ -38,8 +38,12 @@ namespace ICSharpCode.NRefactory.CSharp.Completion { internal IParameterCompletionDataFactory factory; - public CSharpParameterCompletionEngine (IDocument document, IParameterCompletionDataFactory factory) + public CSharpParameterCompletionEngine (IDocument document, IParameterCompletionDataFactory factory, IProjectContent content, CSharpTypeResolveContext ctx, CompilationUnit unit, CSharpParsedFile parsedFile) : base (content, ctx, unit, parsedFile) { + if (document == null) + throw new ArgumentNullException ("document"); + if (factory == null) + throw new ArgumentNullException ("factory"); this.document = document; this.factory = factory; }