public virtual ICompletionDataList ShowCodeSurroundingsCommand(CodeCompletionContext completionContext)
        {
            CompletionDataList list = new CompletionDataList();

            list.AutoSelect              = true;
            list.AutoCompleteEmptyMatch  = true;
            list.CompletionSelectionMode = CompletionSelectionMode.OwnTextField;
            var templateWidget      = DocumentContext.GetContent <ICodeTemplateContextProvider> ();
            CodeTemplateContext ctx = CodeTemplateContext.Standard;

            if (templateWidget != null)
            {
                ctx = templateWidget.GetCodeTemplateContext();
            }
            foreach (CodeTemplate template in CodeTemplateService.GetCodeTemplatesAsync(Editor).WaitAndGetResult(CancellationToken.None))
            {
                if ((template.CodeTemplateType & CodeTemplateType.SurroundsWith) == CodeTemplateType.SurroundsWith)
                {
                    if (ctx == template.CodeTemplateContext)
                    {
                        list.Add(new CodeTemplateCompletionData(this, template));
                    }
                }
            }
            return(list);
        }
Esempio n. 2
0
        public virtual ICompletionDataList ShowCodeSurroundingsCommand(CodeCompletionContext completionContext)
        {
            CompletionDataList list = new CompletionDataList();

            list.AutoSelect              = true;
            list.AutoCompleteEmptyMatch  = true;
            list.CompletionSelectionMode = CompletionSelectionMode.OwnTextField;
            var templateWidget      = Document.GetContent <ICodeTemplateContextProvider> ();
            CodeTemplateContext ctx = CodeTemplateContext.Standard;

            if (templateWidget != null)
            {
                ctx = templateWidget.GetCodeTemplateContext();
            }
            foreach (CodeTemplate template in CodeTemplateService.GetCodeTemplatesForFile(Document.FileName))
            {
                if ((template.CodeTemplateType & CodeTemplateType.SurroundsWith) == CodeTemplateType.SurroundsWith)
                {
                    if (ctx == template.CodeTemplateContext)
                    {
                        list.Add(new CodeTemplateCompletionData(Document, template));
                    }
                }
            }
            return(list);
        }
Esempio n. 3
0
        public void Write(XmlWriter writer)
        {
            writer.WriteStartElement(Node);
            writer.WriteAttributeString(VersionAttribute, CurrentVersion);

            writer.WriteStartElement(HeaderNode);

            writer.WriteStartElement(GroupNode);
            writer.WriteString(Group);
            writer.WriteEndElement();

            writer.WriteStartElement(VersionNode);
            writer.WriteString(Version);
            writer.WriteEndElement();

            writer.WriteStartElement(MimeNode);
            writer.WriteString(MimeType);
            writer.WriteEndElement();

            if (CodeTemplateContext != CodeTemplateContext.Standard)
            {
                writer.WriteStartElement(ContextNode);
                writer.WriteString(CodeTemplateContext.ToString());
                writer.WriteEndElement();
            }

            writer.WriteStartElement(ShortcutNode);
            writer.WriteString(Shortcut);
            writer.WriteEndElement();

            writer.WriteStartElement(DescriptionNode);
            writer.WriteString(Description);
            writer.WriteEndElement();

            writer.WriteStartElement(TemplateTypeNode);
            writer.WriteString(CodeTemplateType.ToString());
            writer.WriteEndElement();

            writer.WriteEndElement();              // HeaderNode

            writer.WriteStartElement(VariablesNode);
            foreach (CodeTemplateVariable var in variableDecarations.Values)
            {
                var.Write(writer);
            }

            writer.WriteEndElement();              // VariablesNode

            writer.WriteStartElement(CodeNode);
            writer.WriteCData(Code);
            writer.WriteEndElement();              // CodeNode

            writer.WriteEndElement();              // Node
        }