예제 #1
0
        public override async Task DidChangeWatchedFiles(DidChangeWatchedFilesParams @params)
        {
            await _analyzerCreationTask;

            IProjectEntry entry;

            foreach (var c in @params.changes.MaybeEnumerate())
            {
                switch (c.type)
                {
                case FileChangeType.Created:
                    entry = await LoadFileAsync(c.uri);

                    if (entry != null)
                    {
                        TraceMessage($"Saw {c.uri} created and loaded new entry");
                    }
                    else
                    {
                        LogMessage(MessageType.Warning, $"Failed to load {c.uri}");
                    }
                    break;

                case FileChangeType.Deleted:
                    await UnloadFileAsync(c.uri);

                    break;

                case FileChangeType.Changed:
                    if ((entry = _projectFiles.GetEntry(c.uri, false)) is IDocument doc)
                    {
                        // If document version is >=0, it is loaded in memory.
                        if (doc.GetDocumentVersion(0) < 0)
                        {
                            EnqueueItem(doc, AnalysisPriority.Low);
                        }
                    }
                    break;
                }
            }
        }
예제 #2
0
파일: ServerBase.cs 프로젝트: yepeiwen/PTVS
 public virtual Task DidChangeWatchedFiles(DidChangeWatchedFilesParams @params) => Task.CompletedTask;
예제 #3
0
 public virtual async Task DidChangeWatchedFiles(DidChangeWatchedFilesParams @params)
 {
 }