Quantcast
Channel: Visual Studio Integrate forum
Viewing all articles
Browse latest Browse all 4410

IOutliningManager.GetAllRegions() does not return any regions for *.cpp file

$
0
0

Hi, 

I'd like to create an extension that deals with outlining of c++ code.  I have a testfile containing a bunch of #pragma region tags and some other code. I can collapse the code in the editor window as usual. 

However, if I try to get the regions using my visual studio plugin the OutliningManager does not return any. If I try a *.cs file it works as expected. Any hints? 

Here is the code of my IVsTextViewCreationListener in which I am trying to access the regions. 

    [Microsoft.VisualStudio.Utilities.ContentType("text")]
    [Microsoft.VisualStudio.Text.Editor.TextViewRole(Microsoft.VisualStudio.Text.Editor.PredefinedTextViewRoles.Editable)]
    [Export(typeof(IVsTextViewCreationListener))]
    public class Main : IVsTextViewCreationListener
    {
        private IOutliningManager _outliningManager;
        private IVsEditorAdaptersFactoryService _editorAdaptersFactoryService;

        public void VsTextViewCreated(IVsTextView textViewAdapter)
        {

            IComponentModel componentModel = (IComponentModel)ServiceProvider.GlobalProvider.GetService(typeof(SComponentModel));
            if (componentModel != null)
            {
                IOutliningManagerService outliningManagerService = componentModel.GetService<IOutliningManagerService>();
                _editorAdaptersFactoryService = componentModel.GetService<IVsEditorAdaptersFactoryService>();

                if (outliningManagerService != null)
                {
                    if (textViewAdapter != null && _editorAdaptersFactoryService != null)
                    {
                        var textView = _editorAdaptersFactoryService.GetWpfTextView(textViewAdapter);
                        var snapshot = textView.TextSnapshot;
                        var snapshotSpan = new Microsoft.VisualStudio.Text.SnapshotSpan(snapshot, new Microsoft.VisualStudio.Text.Span(0, snapshot.Length));
                        _outliningManager = outliningManagerService.GetOutliningManager(textView);
                        var regions = _outliningManager.GetAllRegions(snapshotSpan);
                        foreach (var reg in regions)
                        {
                            _outliningManager.TryCollapse(reg);
                        }
                    }
                }
            }
        }
    }


Viewing all articles
Browse latest Browse all 4410

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>