public Task<bool> ExecuteAsync(ITaskCoverageManager taskCoverageManager, IVsSolutionTestCoverage vsSolutionTestCoverage, IDocumentProvider documentProvider)
        {
            string methodName = Method.Identifier.ValueText;
            RaiseTaskStartedEvent(taskCoverageManager);

            var documentSyntaxTree = documentProvider.GetSyntaxNodeFromTextSnapshot(TextBuffer.CurrentSnapshot);

            var methodNode = documentSyntaxTree.DescendantNodes()
                .OfType<MethodDeclarationSyntax>()
                .FirstOrDefault(x => x.Identifier.ValueText == methodName);

            if (methodNode == null)
                return Task.FromResult(false);

            Task<bool> task = vsSolutionTestCoverage.CalculateForSelectedMethodAsync(ProjectName, methodNode);

            var finalTask = task.ContinueWith((x, y) =>
            {
                if(!x.Result)
                    taskCoverageManager.ReportTaskToRetry(this);

                RaiseTasCompletedEvent(taskCoverageManager);
                return x.Result;

            }, null, TaskSchedulerManager.Current.FromSynchronizationContext());

            return finalTask;
        }
 public TaskCoverageManager(ITimer timer,
     IDocumentProvider documentProvider,
     IVsSolutionTestCoverage vsSolutionTestCoverage)
 {
     _timer = timer;
     _documentProvider = documentProvider;
     _tasks = new List<ITaskCoverageInfo>();
     _vsSolutionTestCoverage = vsSolutionTestCoverage;
 }
        public Task<bool> ExecuteAsync(ITaskCoverageManager taskCoverageManager, IVsSolutionTestCoverage vsSolutionTestCoverage,
            IDocumentProvider documentProvider)
        {
            taskCoverageManager.RaiseEvent(new ResyncAllStarted());
            var task = vsSolutionTestCoverage.CalculateForAllDocumentsAsync();

            var finalTask = task.ContinueWith((finishedTask, y) =>
            {
                taskCoverageManager.RaiseEvent(new ResyncAllCompleted());

                return finishedTask.Result;
            }, null, TaskSchedulerManager.Current.FromSynchronizationContext());

            return finalTask;
        }
        public FileImportOperation(Tenant tenant, IDocumentProvider docProvider, List<DataToImport> files, object parentId, bool overwrite, string folderName)
            : base(tenant, null, null)
        {
            Id = Owner.ToString() + OperationType.ToString();
            Source = docProvider.Name;
            _docProvider = docProvider;
            _files = files ?? new List<DataToImport>();
            _parentId = parentId;
            _overwrite = overwrite;
            _folderName = folderName;

            var toFolderObj = Global.DaoFactory.GetFolderDao().GetFolder(_parentId);

            if (toFolderObj != null && toFolderObj.RootFolderType == FolderType.BUNCH)
                _markAsNewRecipientIDs = Global.GetProjectTeam(toFolderObj).ToList();
        }
        public Task<bool> ExecuteAsync(ITaskCoverageManager taskCoverageManager, IVsSolutionTestCoverage vsSolutionTestCoverage,
            IDocumentProvider documentProvider)
        {
            taskCoverageManager.RaiseEvent(new DocumentCoverageTaskStartedArgs(DocumentPath));

            string documentContent = TextBuffer.CurrentSnapshot.GetText();
            var task = vsSolutionTestCoverage.CalculateForDocumentAsync(ProjectName, DocumentPath, documentContent);

            var finalTask = task.ContinueWith((finishedTask, y) =>
            {
                if (finishedTask.Result)
                    taskCoverageManager.Tasks.RemoveAll(t => IsTaskInDocument(t, DocumentPath));
                else
                    taskCoverageManager.ReportTaskToRetry(this);

                taskCoverageManager.RaiseEvent(new DocumentCoverageTaskCompletedArgs(DocumentPath));

                return finishedTask.Result;
            }, null, TaskSchedulerManager.Current.FromSynchronizationContext());

            return finalTask;
        }
 public BooleanSearchProgram(string inputDirectory, IDocumentProvider documentProvider)
 {
     _inputDirectory = inputDirectory;
     _documentProvider = documentProvider;
 }
        public SchoolDataContext(IDocumentProvider provider, 
			IServiceProvider serviceProvider)
            : base(provider, serviceProvider)
        {
        }
예제 #8
0
 public UnitUnderTestStepThree(IDocumentProvider documentProvider)
 {
     this.documentProvider = documentProvider;
 }
예제 #9
0
 public ContextBase(IDocumentProvider docs, IRuleDataProvider ruleData, IParametersProvider<IRuleContext> @params){
     this.docs = docs;
     this.ruleData = ruleData;
     this.@params = @params;
 }
예제 #10
0
        public SmartVisualStudio(IObjectSpace os, CsharpCode value)
            : this()
        {
            this._codeObject = value;

            CreateEditor();
            if (value != null)
            {
                if (value.Workspace != null)
                {
                    this._workspace = (SmartIDEWorkspace) value.Workspace;
                }
                else
                {
                    this._workspace = SmartIDEWorkspace.GetIDE(os);
                }
                this._document = value.Provider;

            }

            #region 预设置智能感知项目,如果是一个方法,就需要先看一下方法中可以用的智能感知条目列表

            if (_document is IPartCodeProvider && _document!=null)
            {
                var code = value?.Code + "";
                IList<ICompletionData> list = new List<ICompletionData>();
                _workspace.GetIntellisenseItems(_document, 0, true, code, null, list);
            }

            if (value == null)
            {
                Editor.IsEnabled = false;
            }

            #endregion

            #region 设置环境

            if (value != null)
            {
                tabSolution.Visibility = value.ShowSolutionFiles
                    ? DevExpress.XtraBars.Docking.DockVisibility.Visible
                    : DevExpress.XtraBars.Docking.DockVisibility.Hidden;
                if (value.ShowSolutionFiles)
                {
                    solutionTreeView.Nodes.Clear();
                    var solution = solutionTreeView.Nodes.Add("Solution");

                    foreach (var item in _workspace.Workspace.CurrentSolution.Projects)
                    {
                        var projectNode = solution.Nodes.Add(item.Name, item.Name);
                        projectNode.Tag = item;

                        var references = projectNode.Nodes.Add("引用", "引用");
                        foreach (var refence in item.MetadataReferences)
                        {
                            references.Nodes.Add(refence.Display);
                        }

                        foreach (var doc in item.Documents.OrderBy(x=>x.Name))
                        {
                            var docNode = projectNode.Nodes.Add(doc.Name, doc.Name);
                            docNode.Tag = doc;
                        }
                    }
                }
                if (value.Diagnostics != null && value.Diagnostics.Count > 0)
                {
                    this.SetDiagnosticMessage(value.Diagnostics);
                }
            }

            #endregion
        }
예제 #11
0
 public string GetText(IDocumentProvider doc)
 {
     return Documents[doc.GetDocumentGuid()].GetTextAsync().Result.ToString();
 }
예제 #12
0
        /// <summary>
        /// ȡ�ù��λ�õĿ������ܸ�֪��Ŀ
        /// </summary>
        /// <param name="bodytext">����</param>
        /// <param name="logic">��Ӧ��Ŀ</param>
        /// <param name="index">��������</param>
        /// <returns>�������ܸ�֪��Ŀ</returns>
        public IEnumerable<ISymbol> GetRecommendedSymbolsAtPositionAsync(string bodytext, IDocumentProvider logic, int index)
        {
            if (logic is IPartCodeProvider)
            {
                var doc = Documents[logic.GetDocumentGuid()];
                bodytext = (logic as IPartCodeProvider).ReplaceNewCode(doc.GetTextAsync().Result.ToString(), bodytext);

                //var doc = Documents[method.BusinessObject.Oid];
                //var newText = method.ReplaceNewCode(doc.GetTextAsync().Result.ToString(), bodytext);

                //UpdateText(newText, method.BusinessObject);

                //var semanticModel = SemanticModels[method.BusinessObject.Oid];
                //return Recommender.GetRecommendedSymbolsAtPositionAsync(semanticModel, pos, Workspace).Result;
            }

            UpdateText(bodytext, logic);
            if (logic is IPartCodeProvider)
            {
                var define = (logic as IPartCodeProvider).DefaultLocation;
                index = bodytext.IndexOf(define) + define.Length + index + 1;
            }

            var semanticModel = SemanticModels[logic.GetDocumentGuid()];
            return Recommender.GetRecommendedSymbolsAtPositionAsync(semanticModel, index, Workspace).Result;
        }
예제 #13
0
 public void GetIntellisenseItems(IDocumentProvider document, int cartIndex,
     bool needKeyword, string code, string inputed, IList<ICompletionData> result)
 {
     IEnumerable<ISymbol> symbols = GetRecommendedSymbolsAtPositionAsync(code, document, cartIndex);
     ProcessSymbols(needKeyword, symbols, inputed, result);
 }
예제 #14
0
 public IEnumerable<Diagnostic> GetDiagnostics(string text, IDocumentProvider method)
 {
     if (method is IPartCodeProvider)
     {
         var doc = Documents[method.GetDocumentGuid()];
         text = (method as IPartCodeProvider).ReplaceNewCode(doc.GetTextAsync().Result.ToString(), text);
     }
     UpdateText(text, method);
     var rst = SemanticModels[method.GetDocumentGuid()].GetDiagnostics();
     return rst;
 }
        public void Setup()
        {
            _vsSolutionTestCoverageMock = Substitute.For<IVsSolutionTestCoverage>();
            _timerMock = new TimerMock();
            _documentProviderMock = Substitute.For<IDocumentProvider>();

            var textSnapshotMock = Substitute.For<ITextSnapshot>();
            _textBufferMock = Substitute.For<ITextBuffer>();
            _textBufferMock.CurrentSnapshot.Returns(textSnapshotMock);

            _sut = new TaskCoverageManager(_timerMock, _documentProviderMock, _vsSolutionTestCoverageMock);

            var taskSchedulerMock = Substitute.For<ITaskSchedulerManager>();
            SynchronizationContext.SetSynchronizationContext(new TestSyncContext());
            var synchronizationTaskScheduler = TaskScheduler.FromCurrentSynchronizationContext();
            taskSchedulerMock.FromSynchronizationContext().Returns(synchronizationTaskScheduler);

            TaskSchedulerManager.Current = taskSchedulerMock;
        }
 public FileImportOperation(Tenant tenant, IDocumentProvider docProvider, List<DataToImport> files, object parentId, bool overwrite, string folderName, Dictionary<string, string> httpRequestHeaders)
     : this(tenant, docProvider, files, parentId, overwrite, folderName)
 {
     this.httpRequestHeaders = httpRequestHeaders;
 }
예제 #17
0
        private ItemList<FileOperationResult> ImportDocuments(IDocumentProvider provider, List<DataToImport> documents, String parentId, String overwriteStr, String folderName)
        {
            bool overwrite;
            bool.TryParse(overwriteStr, out overwrite);

            var import = new FileImportOperation(
                CoreContext.TenantManager.GetCurrentTenant(),
                provider,
                documents,
                parentId,
                overwrite,
                folderName);

            lock (Tasks)
            {
                var oldTask = Tasks.GetStatus(import.Id.ToString());
                ErrorIf(oldTask != null && !oldTask.IsCompleted, FilesCommonResource.ErrorMassage_ManyImports, true);
                Tasks.Add(import);
            }
            return GetTasksStatuses();
        }
예제 #18
0
        private void CreateDocument(IDocumentProvider documentProvider)
        {
            var doc = Workspace.AddDocument(ModuleProject.Id, documentProvider.GetFileName() + ".cs", SourceText.From(documentProvider.GetCode(),Encoding.UTF8));

            var updated = Workspace.TryApplyChanges(doc.Project.Solution);
            Debug.WriteLine("Updated:" + updated);
            Documents.Add(documentProvider.GetDocumentGuid(), doc);

            SemanticModels.Add(documentProvider.GetDocumentGuid(), doc.GetSemanticModelAsync().Result);
        }
예제 #19
0
 public CsharpCode(string value,IDocumentProvider documentProvider)
 {
     this.Code = value;
     this.Provider = documentProvider;
 }
예제 #20
0
        private void UpdateText(string text, IDocumentProvider doc)
        {
            SourceText sourceText = SourceText.From(text,Encoding.UTF8);
            var document = Documents[doc.GetDocumentGuid()];
            document = document.WithText(sourceText);
            var rs = Workspace.TryApplyChanges(document.Project.Solution);

            Debug.WriteLine("enter updated:" + rs);
            //��Ҫ������������Ŀ���ĵ�ʵ�����仯�ˣ��������±���
            document = this.ModuleProject.Documents.First(x => x.Id == document.Id);
            Documents[doc.GetDocumentGuid()] = document;
            SemanticModels[doc.GetDocumentGuid()] = document.GetSemanticModelAsync().Result;
        }
 public RosterDocumentContext(IDocumentProvider provider)
     : base(provider)
 {
 }
예제 #22
0
        protected AbstractController(IThreadingContext threadingContext, ITextView textView, ITextBuffer subjectBuffer, IIntelliSensePresenter <TPresenterSession, TEditorSession> presenter, IAsynchronousOperationListener asyncListener, IDocumentProvider documentProvider, string asyncOperationId)
            : base(threadingContext)
        {
            this.TextView         = textView;
            this.SubjectBuffer    = subjectBuffer;
            this.Presenter        = presenter;
            _asyncListener        = asyncListener;
            this.DocumentProvider = documentProvider;
            _asyncOperationId     = asyncOperationId;

            this.TextView.Closed += OnTextViewClosed;

            // Caret position changed only fires if the caret is explicitly moved.  It doesn't fire
            // when the caret is moved because of text change events.
            this.TextView.Caret.PositionChanged  += this.OnCaretPositionChanged;
            this.TextView.TextBuffer.PostChanged += this.OnTextViewBufferPostChanged;
        }