Example #1
0
 public SassCompletionSource(ISassEditor editor, IIntellisenseManager intellisenseManager, ICompletionCompiler compiler, ITextStructureNavigatorSelectorService textNavigator)
 {
     Editor = editor;
     Cache  = intellisenseManager.Get(editor.Document);
     IntellisenseManager = intellisenseManager;
     Compiler            = compiler;
     TextNavigator       = textNavigator;
 }
 public SassCompletionSource(ISassEditor editor, IIntellisenseManager intellisenseManager, ICompletionCompiler compiler, ITextStructureNavigatorSelectorService textNavigator)
 {
     Editor = editor;
     Cache = intellisenseManager.Get(editor.Document);
     IntellisenseManager = intellisenseManager;
     Compiler = compiler;
     TextNavigator = textNavigator;
 }
        public override void Add(ParseItem item, ITextProvider text)
        {
            if (item is SassImportDirective)
            {
                var directive = item as SassImportDirective;
                foreach (var file in directive.Files.Where(x => x.IsValid))
                {
                    Containers.Add(new ImportContainer(directive, IntellisenseManager.Get(file.Document)));
                }
            }
            else if (item is XmlDocumentationComment)
            {
                var comment = item as XmlDocumentationComment;
                foreach (var tag in comment.Children.OfType <FileReferenceTag>().Where(x => x.Document != null))
                {
                    Containers.Add(new ImportContainer(tag, IntellisenseManager.Get(tag.Document)));
                }
            }
            else if (item is MixinDefinition)
            {
                var definition = item as MixinDefinition;
                if (definition.Name != null && definition.Name.Name != null)
                {
                    Parse(new MixinContainer(definition, text), definition.Children, text);

                    var name = text.GetText(definition.Name.Name.Start, definition.Name.Name.Length);
                    _Mixins.Add(definition.End, new MixinCompletionValue(name));
                }
            }
            else if (item is UserFunctionDefinition)
            {
                var definition = item as UserFunctionDefinition;
                if (definition.Name != null)
                {
                    Parse(new FunctionContainer(definition, text), definition.Children, text);

                    var name = text.GetText(definition.Name.Start, definition.Name.Length);
                    _Functions.Add(definition.End, new UserFunctionCompletionValue(name));
                }
            }
            else
            {
                base.Add(item, text);
            }
        }
Example #4
0
        ISassEditor Create(ITextBuffer buffer)
        {
            ITextDocument document;

            if (buffer.Properties.TryGetProperty(typeof(ITextDocument), out document))
            {
                var sassDocument = DocumentManager.Get(new FileInfo(document.FilePath));
                var cache        = IntellisenseManager.Get(sassDocument);
                return(new SassEditor(buffer, sassDocument, cache, ParsingTask));
            }

            return(null);
        }