Cursor Not Following Page Movement

Slightly uncertain whether this is a bug, a feature request, or just behaviour that’s expected but not helpful to me personally.

Paging up and down through the document (PgUp and PgDn / Filco KB) the text pages into view as I’d expect, but the cursor stays where it is.

This means that if I move the cursor, I’m transported back up or down the document.

I find this very jarring and incompatible with my expectations coming from Sublime Text.

Is that working as expected? If it’s behaviour that other users generally find intuitive, is there a way I can amend it myself with any kind of workaround?

This is intended, it’s the way that it works in the native OS X text component. But you can also get the behavior your are looking for. Internally there are a number of “page” commands. I’ve listed them here with default keybinding first, followed by internal command name.

Just scroll:

PageUp : scrollPageUp
PageDown : scrollPageDown

Change selection:

Alt-PageUp : pageUp
Alt-PageDown : pageDown

Extend selection:

Shift-PageUp : pageUpAndModifySelection
Shift-PageDown : pageDownAndModifySelection

Those are the defaults, you can change them with a plugin that adds your own keybindings.

Thanks for that - good excyse to dip my toe in the water with plugins


I’ve tried to follow this procedure, using the instructions you’ve posted previously for developing a plugin.

With the plugin in place in the Plug-Ins directory, and after a restart, the two taskpaper files look totally empty when I open them - no text on display. no hidden white-on-white text to select etc.

When I move the plugin sub-folder out of the Plug-Ins directory and restart, the taskpaper files open and work without issue.

This is the entireity of the package and main files:

    "name": "Hello world",
    "version": "1.0.0",
    "description": "Seans Custom Keys!'",
    "engines": {
        "foldingtext": ">=2.0.0",
        "taskpaper": ">=3.0.0"
    "homepage": ""

define(function(require, exports, module) {
    var Extensions = require('ft/core/extensions').Extensions;
    Extensions.addInit(function (editor) {
            'PageUp': pageUpAndModifySelection,
            'PageDown': pageDownAndModifySelection

The problem is in:

'PageUp': pageUpAndModifySelection,
'PageDown': pageDownAndModifySelection

It should be:

'PageUp': 'pageUpAndModifySelection',
'PageDown': 'pageDownAndModifySelection'

I didn’t spot this just by looking at the file. Instead I put your plugin in my plugins folder and then opened Help > Software Development Kit > Editor and clicked on the “Inspector” toolbar item. And there the error was pretty easy to see.

Ok, thanks - I think I saw an example that appeared to be a function reference and not a string, and one of the example plugins used an anonymous function inline so I made an incorrect assumption

I think the real problem is that I’ve wandered in as a previously non-FT user without even a cursory look at the documentation. Best do that before any more questions.