/// /// /// import { BaseStore } from "../../deps/scrapbox.ts"; import { Position } from "./position.ts"; export interface SetPositionOptions { /** カーソルが画面外に移動したとき、カーソルが見える位置までページをスクロールするかどうか * * @default true */ scrollInView?: boolean; /** カーソル移動イベントの発生箇所? * * コード内だと、"mouse"が指定されていた場合があった。詳細は不明 */ source?: string; } /** カーソル操作クラス */ export declare class Cursor extends BaseStore { constructor(); /** カーソルの位置を初期化し、editorからカーソルを外す */ clear(): void; /** カーソルの位置を取得する */ getPosition(): Position; /** カーソルが表示されているか調べる */ getVisible(): boolean; /** カーソルを指定した位置に動かす */ setPosition( position: Position, option?: SetPositionOptions, ): void; /** popup menuを表示する */ showEditPopupMenu(): void; /** popup menuを消す */ hidePopupMenu(): void; /** #text-inputにカーソルをfocusし、同時にカーソルを表示する */ focus(): void; /** #text-inputからfocusを外す。カーソルの表示状態は変えない */ blur(): void; /** カーソルの位置が行や列の外に出ていた場合に、存在する行と列の中に納める */ fixPosition(): void; /** カーソルが行頭にいてかつ表示されていたら`true` */ isAtLineHead(): boolean; /** カーソルが行末にいてかつ表示されていたら`true` */ isAtLineTail(): boolean; /** カーソルを表示する * * #text-inputのfocus状態は変えない */ show(): void; /** カーソルを非表示にする * * touch deviceの場合は、#text-inputからfocusを外す */ hide(): void; /** カーソル操作コマンド * * | Command | Description | * | ------ | ----------- | * | go-up | 1行上に動かす | * | go-down | 1行下に動かす | * | go-left | 1文字左に動かす | * | go-right | 1文字右に動かす | * | go-forward | Emacs key bindingsで使われているコマンド。go-rightとほぼ同じ | * | go-backward | Emacs key bindingsで使われているコマンド。go-leftとほぼ同じ | * | go-top | タイトル行の行頭に飛ぶ | * | go-bottom | 最後の行の行末に飛ぶ | * | go-word-head | 1単語右に動かす | * | go-word-tail | 1単語左に動かす | * | go-line-head | 行頭に飛ぶ | * | go-line-tail | 行末に飛ぶ | * | go-pagedown | 1ページ分下の行に飛ぶ | * | go-pageup | 1ページ分上の行に飛ぶ | */ goByAction( action: | "go-up" | "go-down" | "go-left" | "go-right" | "go-forward" | "go-backward" | "go-top" | "go-bottom" | "go-word-head" | "go-word-tail" | "go-line-head" | "go-line-tail" | "go-pagedown" | "go-pageup", ): void; /* `scrapbox.Page.lines`とほぼ同じ */ get lines(): unknown[]; /* `scrapbox.Project.pages`とほぼ同じ */ get pages(): unknown; private goUp(): void; private goPageUp(): void; private goDown(): void; private goPageDown(): void; private getNextLineHead(): void; private getPrevLineTail(): void; private goBackward(init?: { scrollInView: boolean }): void; private goForward(init?: { scrollInView: boolean }): void; private goLeft(): void; private goRight(): void; /** タイトルの先頭文字に飛ぶ */ private goTop(): void; /** 最後の行の末尾に飛ぶ */ private goBottom(): void; private goWordHead(): void; private getWordHead(): Position; private goWordTail(): void; private getWordTail(): Position; /** インデントの後ろに飛ぶ * * インデントの後ろかインデントの中にいるときは行頭に飛ぶ */ private goLineHead(): void; /** 行末に飛ぶ */ private goLineTail(): void; private sync(): void; private syncNow(): void; private updateTemporalHorizontalPoint(): number; private emitScroll(): void; emitChange(event: string): void; private data: Position; private temporalHorizontalPoint: number; private visible: boolean; private visiblePopupMenu: boolean; private focusTextarea: boolean; }