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); } }
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); } }