private void SendMessage(FoldingStates state, FoldingPositionInfo folding) { var areaBeforeFolding = new TextRange(); var areaAfterFolding = new TextRange(); if (state == FoldingStates.FOLDED) { areaBeforeFolding.StartPosition = folding.Position; areaBeforeFolding.EndPosition = foldingPositions.First(pair => Equals(pair.Key, folding)).Value.Position; areaAfterFolding.StartPosition = folding.Position; areaAfterFolding.EndPosition = new TextPosition(column: folding.Position.Column + FoldingAlgorithm.GetCollapsibleRepresentation().Length, line: folding.Position.Line); } else { areaAfterFolding.StartPosition = folding.Position; areaAfterFolding.EndPosition = foldingPositions.First(pair => Equals(pair.Key, folding)).Value.Position; areaBeforeFolding.StartPosition = folding.Position; areaBeforeFolding.EndPosition = new TextPosition(column: folding.Position.Column + FoldingAlgorithm.GetCollapsibleRepresentation().Length, line: folding.Position.Line); } Postbox.Put(new FoldClickedMessage { AreaBeforeFolding = areaBeforeFolding, AreaAfterFolding = areaAfterFolding, ClosingTag = FoldingAlgorithm.GetClosingTag(), OpeningTag = FoldingAlgorithm.GetOpeningTag(), State = state }); }
private void CreateFolds(IDictionary <TextPosition, TextPosition> folds) { foreach (var kvp in folds) { var tmpKey = new FoldingPositionInfo { Deleted = false, Position = kvp.Key }; var existingKey = foldingPositions.Keys.FirstOrDefault(k => k.Equals(tmpKey)); if (existingKey != null) { existingKey.Deleted = false; } else { existingKey = tmpKey; } foldingPositions[existingKey] = new FoldingPositionInfo { Deleted = false, Position = kvp.Value }; } }
private void CreateFolds(IDictionary<TextPosition, TextPosition> folds) { foreach (var kvp in folds) { var tmpKey = new FoldingPositionInfo { Deleted = false, Position = kvp.Key }; var existingKey = foldingPositions.Keys.FirstOrDefault(k => k.Equals(tmpKey)); if (existingKey != null) { existingKey.Deleted = false; } else { existingKey = tmpKey; } foldingPositions[existingKey] = new FoldingPositionInfo { Deleted = false, Position = kvp.Value }; } }