@@ -173,9 +173,13 @@ pub mod util {
174 pub fn generate_transaction_from_edits(
174 pub fn generate_transaction_from_edits(
175 doc: &Rope,
175 doc: &Rope,
176− edits: Vec<lsp::TextEdit>,
176+ mut edits: Vec<lsp::TextEdit>,
177 offset_encoding: OffsetEncoding,
177 offset_encoding: OffsetEncoding,
178 ) -> Transaction {
178 ) -> Transaction {
179+ // Sort edits by start range, since some LSPs (Omnisharp) send them
180+ // in reverse order.
181+ edits.sort_unstable_by_key(|edit| edit.range.start);
179 Transaction::change(
183 Transaction::change(
181 edits.into_iter().map(|edit| {
185 edits.into_iter().map(|edit| {