1 {MotionWithInput, MoveToFirstCharacterOfLine} = require './general-motions'
2 {ViewModel} = require '../view-models/view-model'
3 {Point, Range} = require 'atom'
6 class MoveToMark extends MotionWithInput
7 constructor: (@editor, @vimState, @linewise=true) ->
8 super(@editor, @vimState)
9 @operatesLinewise = @linewise
10 @viewModel = new ViewModel(this, class: 'move-to-mark', singleChar: true, hidden: true)
12 isLinewise: -> @linewise
14 moveCursor: (cursor, count=1) ->
15 markPosition = @vimState.getMark(@input.characters)
17 if @input.characters is '`' # double '`' pressed
18 markPosition ?= [0, 0] # if markPosition not set, go to the beginning of the file
19 @vimState.setMark('`', cursor.getBufferPosition())
21 cursor.setBufferPosition(markPosition) if markPosition?
23 cursor.moveToFirstCharacterOfLine()