Exemplo n.º 1
0
        public CreateNTriplesPrefixTarget(NTriplesPrefixReference reference)
        {
            this.myElement = reference.GetTreeNode();
            string name = reference.GetName();

            var uri = this.TryFindUri(reference);

            this.myDeclaration =
                NTriplesElementFactory.GetInstance(this.myElement.GetPsiModule()).CreatePrefixDeclarationSentence(name, uri);
            this.Anchor = this.FindAnchor();
        }
        protected override Action <ITextControl> ExecutePsiTransaction(ISolution solution, IProgressIndicator progress)
        {
            using (JetBrains.Application.WriteLockCookie.Create(true))
            {
                var startSentence = this.highlighter.StartElement;
                var sentences     = this.CollectSentences();
                var facts         =
                    sentences.SelectMany(s => s.Statement.FactsEnumerable)
                    .GroupBy(GetPredicateText)
                    .ToDictionary(g => g.Key, g => g.SelectMany(x => x.ObjectsEnumerable).Select(o => o.GetText()).ToArray());
                var subjectText = startSentence.Statement.Subject.GetText();
                var newSentence = NTriplesElementFactory.GetInstance(startSentence).CreateSentence(subjectText, facts);

                ModificationUtil.DeleteChildRange(this.highlighter.StartElement, this.highlighter.EndElement.PrevSibling);
                ModificationUtil.ReplaceChild(sentences.Last(), newSentence);

                return(null);
            }
        }
Exemplo n.º 3
0
        protected override Action <ITextControl> ExecutePsiTransaction(ISolution solution, IProgressIndicator progress)
        {
            using (JetBrains.Application.WriteLockCookie.Create(true))
            {
                var startFact    = this.highlighter.StartElement;
                var factElements = this.CollectFacts();
                var facts        = factElements.GroupBy(GetPredicateText)
                                   .ToDictionary(
                    g => g.Key,
                    g => g.SelectMany(x => x.ObjectsEnumerable).Select(o => o.GetText()).ToArray());
                var statement = startFact.GetContainingNode <IStatement>();
                if (statement == null)
                {
                    return(null);
                }

                var subjectText = statement.Subject.GetText();
                var newSentence = NTriplesElementFactory.GetInstance(startFact).CreateSentence(subjectText, facts);

                ModificationUtil.ReplaceChild(statement, newSentence);
                return(null);
            }
        }