@@ -173,9 +173,13 @@ pub mod util {
173173
174174 pub fn generate_transaction_from_edits(
175175 doc: &Rope,
176− edits: Vec<lsp::TextEdit>,
176+ mut edits: Vec<lsp::TextEdit>,
177177 offset_encoding: OffsetEncoding,
178178 ) -> 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);
182+
179183 Transaction::change(
180184 doc,
181185 edits.into_iter().map(|edit| {