当前位置: 首页>>代码示例>>C#>>正文


C# ICompletionSession.GetOptions方法代码示例

本文整理汇总了C#中ICompletionSession.GetOptions方法的典型用法代码示例。如果您正苦于以下问题:C# ICompletionSession.GetOptions方法的具体用法?C# ICompletionSession.GetOptions怎么用?C# ICompletionSession.GetOptions使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ICompletionSession的用法示例。


在下文中一共展示了ICompletionSession.GetOptions方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: AugmentCompletionSession

        public override void AugmentCompletionSession(ICompletionSession session, IList<CompletionSet> completionSets) {
            var doc = HtmlEditorDocument.FromTextBuffer(_buffer);
            if (doc == null) {
                return;
            }
            doc.HtmlEditorTree.EnsureTreeReady();

            var primarySnapshot = doc.PrimaryView.TextSnapshot;
            var nullableTriggerPoint = session.GetTriggerPoint(primarySnapshot);
            if (!nullableTriggerPoint.HasValue) {
                return;
            }
            var triggerPoint = nullableTriggerPoint.Value;

            var artifacts = doc.HtmlEditorTree.ArtifactCollection;
            var index = artifacts.GetItemContaining(triggerPoint.Position);
            if (index < 0) {
                return;
            }

            var artifact = artifacts[index] as TemplateArtifact;
            if (artifact == null) {
                return;
            }

            var artifactText = doc.HtmlEditorTree.ParseTree.Text.GetText(artifact.InnerRange);
            artifact.Parse(artifactText);

            ITrackingSpan applicableSpan;
            var completionSet = GetCompletionSet(session.GetOptions(_analyzer._serviceProvider), _analyzer, artifact.TokenKind, artifactText, artifact.InnerRange.Start, triggerPoint, out applicableSpan);
            completionSets.Add(completionSet);
        }
开发者ID:omnimark,项目名称:PTVS,代码行数:32,代码来源:DjangoCompletionSource.cs

示例2: AugmentCompletionSession

        public override void AugmentCompletionSession(ICompletionSession session, IList<CompletionSet> completionSets) {
            var nullableTriggerPoint = session.GetTriggerPoint(_buffer.CurrentSnapshot);
            if (!nullableTriggerPoint.HasValue) {
                return;
            }

            var triggerPoint = nullableTriggerPoint.Value;
            TemplateProjectionBuffer projBuffer;
            if (!_buffer.Properties.TryGetProperty<TemplateProjectionBuffer>(typeof(TemplateProjectionBuffer), out projBuffer)) {
                return;
            }

            int templateStart;
            TemplateTokenKind kind;
            var templateText = projBuffer.GetTemplateText(triggerPoint, out kind, out templateStart);
            if (templateText == null) {
                return;
            }

            if (kind == TemplateTokenKind.Block || kind == TemplateTokenKind.Variable) {
                ITrackingSpan applicableSpan;
                var completionSet = GetCompletionSet(
                    session.GetOptions(),
                    _analyzer,
                    kind,
                    templateText,
                    templateStart,
                    triggerPoint,
                    out applicableSpan);
                completionSets.Add(completionSet);
            }
        }
开发者ID:wenh123,项目名称:PTVS,代码行数:32,代码来源:DjangoCompletionSource.cs

示例3: AugmentCompletionSession

        public void AugmentCompletionSession(ICompletionSession session, IList<CompletionSet> completionSets) {
            var textBuffer = _textBuffer;
            var span = session.GetApplicableSpan(textBuffer);
            var triggerPoint = session.GetTriggerPoint(textBuffer);
            var options = session.GetOptions(_provider._serviceProvider);
            var provider = textBuffer.CurrentSnapshot.GetCompletions(_provider._serviceProvider, span, triggerPoint, options);

            var completions = provider.GetCompletions(_provider._glyphService);
           
            if (completions != null && completions.Completions.Count > 0) {
                completionSets.Add(completions);
            }
        }
开发者ID:omnimark,项目名称:PTVS,代码行数:13,代码来源:CompletionSource.cs

示例4: AugmentCompletionSession

        public void AugmentCompletionSession(ICompletionSession session, IList<CompletionSet> completionSets)
        {
            var textBuffer = _textBuffer;
            var span = session.GetApplicableSpan(textBuffer);
            var triggerPoint = session.GetTriggerPoint(textBuffer);
            var options = session.GetOptions();
            var provider = textBuffer.CurrentSnapshot.GetCompletions(span, triggerPoint, options);

            var completions = provider.GetCompletions(_provider._glyphService);

            if (completions == null || completions.Completions.Count == 0) {
                if (JToolsPackage.Instance != null &&
                    !session.TextView.GetAnalyzer().InterpreterFactory.IsAnalysisCurrent()) {
                    // no completions, inform the user via the status bar that the analysis is not yet complete.
                    var statusBar = (IVsStatusbar)CommonPackage.GetGlobalService(typeof(SVsStatusbar));
                    statusBar.SetText(Resources.WarningAnalysisNotCurrent);
                }
                return;
            }

            completionSets.Add(completions);
        }
开发者ID:borota,项目名称:JTVS,代码行数:22,代码来源:CompletionSource.cs

示例5: AugmentCompletionSession

        public void AugmentCompletionSession(ICompletionSession session, IList<CompletionSet> completionSets) {
            TemplateProjectionBuffer projBuffer;
            if (_textBuffer.Properties.TryGetProperty<TemplateProjectionBuffer>(typeof(TemplateProjectionBuffer), out projBuffer)) {
                var completions = new List<DynamicallyVisibleCompletion>();
                foreach (var tag in _htmlTags) {
                    completions.Add(new DynamicallyVisibleCompletion(
                        tag,
                        tag,
                        "",
                        _completionSourceProvider._glyphService.GetGlyph(StandardGlyphGroup.GlyphXmlItem, StandardGlyphItem.GlyphItemPublic),
                        "")
                    );
                }
                foreach (var tag in _htmlTags) {
                    completions.Add(new DynamicallyVisibleCompletion(
                        "/" + tag,
                        "/" + tag,
                        "",
                        _completionSourceProvider._glyphService.GetGlyph(StandardGlyphGroup.GlyphXmlItem, StandardGlyphItem.GlyphItemPublic),
                        "")
                    );
                }

                //
                var triggerPoint = session.GetTriggerPoint(_textBuffer);
                var point = triggerPoint.GetPoint(_textBuffer.CurrentSnapshot);

                var match = projBuffer.BufferGraph.MapUpToFirstMatch(
                    point,
                    PointTrackingMode.Positive,
                    x => x.TextBuffer != _textBuffer,
                    PositionAffinity.Predecessor
                );
                
                if (match == null ||
                    !match.Value.Snapshot.TextBuffer.ContentType.IsOfType(TemplateContentType.ContentTypeName)) {

                    var line = point.GetContainingLine();
                    var text = line.GetText();
                    int position = point.Position;
                    for (int i = position - line.Start.Position - 1; i >= 0 && i < text.Length; --i, --position) {
                        char c = text[i];
                        if (!char.IsLetterOrDigit(c) && c != '!') {
                            break;
                        }
                    }

                    var span = _textBuffer.CurrentSnapshot.CreateTrackingSpan(position, point.Position - position, SpanTrackingMode.EdgeInclusive);

                    completionSets.Add(new FuzzyCompletionSet("PythonDjangoTemplateHtml", "HTML", span, completions, session.GetOptions(), CompletionComparer.UnderscoresLast));
                }
            }
        }
开发者ID:wenh123,项目名称:PTVS,代码行数:53,代码来源:HtmlCompletionSource.cs


注:本文中的ICompletionSession.GetOptions方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。