message: Refactor modification logic back in Occurrence
diff: import { camel } from "change-case";
  -import { Editor, Code, ErrorReason } from "../../editor/editor";
  +import { Editor, Code, ErrorReason, Modification } from "../../editor/editor";
  import { Selection } from "../../editor/selection";
  import { Position } from "../../editor/position";
  import * as ast from "../../ast";
  @@ -42,10 +42,7 @@ async function extractVariable(
  selection: topMostOccurrence.getScopeParentCursor()
  },
  // Replace extracted code with new variable.
  - ...extractedOccurrences.map(occurrence => ({
  - code: occurrence.toVariableId(),
  - selection: occurrence.selection
  - }))
  + ...extractedOccurrences.map(occurrence => occurrence.modification)
  ],
  selectedOccurrence.positionOnExtractedId()
  );
  @@ -234,6 +231,13 @@ class Occurrence {
  return " ".repeat(this.getIndentationLevel());
  }
  + get modification(): Modification {
  + return {
  + code: this.toVariableId(),
  + selection: this.selection
  + };
  + }
  +
  positionOnExtractedId(): Position {
  return new Position(
  this.selection.start.line + this.selection.height + 1,
  