Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring.CodeActions/MDRefactoringContext.cs')
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring.CodeActions/MDRefactoringContext.cs271
1 files changed, 0 insertions, 271 deletions
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring.CodeActions/MDRefactoringContext.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring.CodeActions/MDRefactoringContext.cs
deleted file mode 100644
index c8c7d60632..0000000000
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring.CodeActions/MDRefactoringContext.cs
+++ /dev/null
@@ -1,271 +0,0 @@
-//
-// MDRefactoringContext.cs
-//
-// Author:
-// Mike Krüger <mkrueger@novell.com>
-//
-// Copyright (c) 2011 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-
-using System;
-using System.Linq;
-using ICSharpCode.NRefactory.CSharp;
-using MonoDevelop.Projects;
-using MonoDevelop.Core;
-using MonoDevelop.Refactoring;
-using ICSharpCode.NRefactory.CSharp.Refactoring;
-using MonoDevelop.Ide.TypeSystem;
-using ICSharpCode.NRefactory;
-using System.Threading;
-using MonoDevelop.Ide.Gui;
-using System.Diagnostics;
-using MonoDevelop.CSharp.Refactoring.CodeIssues;
-using Mono.TextEditor;
-using ICSharpCode.NRefactory.CSharp.Resolver;
-using MonoDevelop.CSharp.Formatting;
-using System.Threading.Tasks;
-
-namespace MonoDevelop.CSharp.Refactoring.CodeActions
-{
- public class MDRefactoringContext : RefactoringContext, IRefactoringContext
- {
- MonoDevelop.Projects.Project fileContainerProject;
-
- public TextEditorData TextEditor {
- get;
- private set;
- }
-
- public DotNetProject Project {
- get;
- private set;
- }
-
- public MonoDevelop.Projects.Project FileContainerProject {
- get {
- if (fileContainerProject == null)
- fileContainerProject = FindProjectContainingFile () ?? Project;
- return fileContainerProject;
- }
- }
-
- MonoDevelop.Projects.Project FindProjectContainingFile ()
- {
- var file = TextEditor.FileName;
- if (string.IsNullOrEmpty (file) || Project == null)
- return null;
-
- var pf = Project.GetProjectFile (file);
- if (pf != null && (pf.Flags & ProjectItemFlags.Hidden) != 0) {
- // The file is hidden in this project, so it may also be part of another project.
- // Try to find a project in which this file is not hidden
- foreach (var p in Project.ParentSolution.GetAllProjects ()) {
- pf = p.GetProjectFile (file);
- if (pf != null && (pf.Flags & ProjectItemFlags.Hidden) == 0)
- return p;
- }
- }
- return null;
- }
-
- public bool IsInvalid {
- get {
- if (Resolver == null || TextEditor == null)
- return true;
- return ParsedDocument == null;
- }
- }
-
- public ParsedDocument ParsedDocument {
- get;
- private set;
- }
-
- public SyntaxTree Unit {
- get {
- Debug.Assert (!IsInvalid);
- return Resolver.RootNode as SyntaxTree;
- }
- }
-
- public override string DefaultNamespace {
- get {
- var p = FileContainerProject as IDotNetFileContainer;
- if (p == null || TextEditor == null || string.IsNullOrEmpty (TextEditor.FileName))
- return null;
- return p.GetDefaultNamespace (TextEditor.FileName);
- }
- }
-
- public override bool Supports (Version version)
- {
- var project = Project;
- if (project == null)
- return true;
- switch (project.TargetFramework.ClrVersion) {
- case ClrVersion.Net_1_1:
- return version.Major > 1 || version.Major == 1 && version.Minor >= 1;
- case ClrVersion.Net_2_0:
- return version.Major >= 2;
- case ClrVersion.Clr_2_1:
- return version.Major > 2 || version.Major == 2 && version.Minor >= 1;
- default:
- return true;
- }
- }
-
- public override ICSharpCode.NRefactory.CSharp.TextEditorOptions TextEditorOptions {
- get {
- return TextEditor.CreateNRefactoryTextEditorOptions ();
- }
- }
-
- public override bool IsSomethingSelected {
- get {
- return TextEditor.IsSomethingSelected;
- }
- }
-
- public override string SelectedText {
- get {
- return TextEditor.SelectedText;
- }
- }
-
- public override TextLocation SelectionStart {
- get {
- return TextEditor.MainSelection.Start;
- }
- }
-
- public override TextLocation SelectionEnd {
- get {
- return TextEditor.MainSelection.End;
- }
- }
-
- public override int GetOffset (TextLocation location)
- {
- return TextEditor.LocationToOffset (location);
- }
-
- public override TextLocation GetLocation (int offset)
- {
- return TextEditor.OffsetToLocation (offset);
- }
-
- public override string GetText (int offset, int length)
- {
- return TextEditor.GetTextAt (offset, length);
- }
-
- public override string GetText (ICSharpCode.NRefactory.Editor.ISegment segment)
- {
- return TextEditor.GetTextAt (segment.Offset, segment.Length);
- }
-
- public override ICSharpCode.NRefactory.Editor.IDocumentLine GetLineByOffset (int offset)
- {
- return TextEditor.GetLineByOffset (offset);
- }
-
- readonly Document document;
- TextLocation location;
-
- public override TextLocation Location {
- get {
- return location;
- }
- }
-
- internal void SetLocation (TextLocation loc)
- {
- if (document != null)
- location = RefactoringService.GetCorrectResolveLocation (document, loc);
- else
- location = loc;
- }
-
- readonly CSharpFormattingOptions formattingOptions;
-
- public CSharpFormattingOptions FormattingOptions {
- get {
- return formattingOptions;
- }
- }
-
- public Script StartScript ()
- {
- return new MDRefactoringScript (this, formattingOptions);
- }
-
- public IDisposable CreateScript ()
- {
- return StartScript ();
- }
-
- internal static Task<MDRefactoringContext> Create (Document document, TextLocation loc, CancellationToken cancellationToken = default (CancellationToken))
- {
- var shared = document.GetSharedResolver ();
- if (shared == null) {
- var tcs = new TaskCompletionSource<MDRefactoringContext> ();
- tcs.SetResult (null);
- return tcs.Task;
- }
-
- return shared.ContinueWith (t => {
- var sharedResolver = t.Result;
- if (sharedResolver == null)
- return null;
- return new MDRefactoringContext (document, sharedResolver, loc, cancellationToken);
- // Do not add TaskContinuationOptions.ExecuteSynchronously
- // https://bugzilla.xamarin.com/show_bug.cgi?id=25065
- // adding ExecuteSynchronously appears to create a deadlock situtation in TypeSystemParser.Parse()
- });
- }
-
- internal MDRefactoringContext (Document document, CSharpAstResolver resolver, TextLocation loc, CancellationToken cancellationToken = default (CancellationToken)) : base (resolver, cancellationToken)
- {
- if (document == null)
- throw new ArgumentNullException ("document");
- this.document = document;
- this.TextEditor = document.Editor;
- this.ParsedDocument = document.ParsedDocument;
- this.Project = document.Project as DotNetProject;
- this.formattingOptions = document.GetFormattingOptions ();
- this.location = loc;
- var policy = document.HasProject ? document.Project.Policies.Get<NameConventionPolicy> () : MonoDevelop.Projects.Policies.PolicyService.GetDefaultPolicy<NameConventionPolicy> ();
- Services.AddService (typeof(NamingConventionService), policy.CreateNRefactoryService ());
- Services.AddService (typeof(ICSharpCode.NRefactory.CSharp.CodeGenerationService), new CSharpCodeGenerationService());
- }
-
- public MDRefactoringContext (DotNetProject project, TextEditorData data, ParsedDocument parsedDocument, CSharpAstResolver resolver, TextLocation loc, CancellationToken cancellationToken = default (CancellationToken)) : base (resolver, cancellationToken)
- {
- this.TextEditor = data;
- this.ParsedDocument = parsedDocument;
- this.Project = project;
- var policy = Project.Policies.Get<CSharpFormattingPolicy> ();
- this.formattingOptions = policy.CreateOptions ();
- this.location = loc;
- var namingPolicy = Project.Policies.Get<NameConventionPolicy> ();
- Services.AddService (typeof(NamingConventionService), namingPolicy.CreateNRefactoryService ());
- }
- }
-}