     @saveSpadeTimeout = null
     super()
 
+# Note: These need to be double-escaped for insertion into regexes
 commentStarts =
   javascript: '//'
   python: '#'

    if @_singleLineCommentRegex
      @_singleLineCommentRegex.lastIndex = 0
      return @_singleLineCommentRegex
    commentStart = commentStarts[@spell.language] or '//'
    @_singleLineCommentRegex = new RegExp "[ \t]*#{commentStart}[^\"'\n]*", 'g'
    @_singleLineCommentRegex

  lineWithCodeRegex: ->
    if @_lineWithCodeRegex
      @_lineWithCodeRegex.lastIndex = 0
      return @_lineWithCodeRegex
    commentStart = commentStarts[@spell.language] or '//'
    @_lineWithCodeRegex = new RegExp "^[ \t]*(?!( |]t|#{commentStart}))+", 'g'
    @_lineWithCodeRegex

  commentOutMyCode: ->
    prefix = if @spell.language is 'javascript' then 'return;  ' else 'return  '

      session.removeGutterDecoration index, 'next-entry-point'

      lineHasComment = @singleLineCommentRegex().test line
      lineHasCode = line.trim()[0] and not @singleLineCommentOnlyRegex().test line
      lineIsBlank = /^[ \t]*$/.test line
      lineHasExplicitMarker = line.indexOf('∆') isnt -1

