export interface HighlightSet { background ? : number ; bg ? : string ; bold ? : boolean ; fg ? : string ; foreground ? : number ; italic ? : boolean ; reverse ? : boolean ; special ? : number ; undercurl ? : boolean ; underline ? : boolean ; } export interface ModeInfoSet { [ key ] : ModeInfo ; } export interface ModeInfo { blinkoff ? : number ; blinkon ? : number ; blinkwait ? : number ; cell_percentage ? : number ; cursor_shape ? : string ; hl_id ? : number ; id_lm ? : number ; mouse_shape : number ; name : string ; short_name : string ; } export interface Region { top : number ; left : number ; right : number ; bottom : number ; } export enum Kind { Bell , BusyStart , BusyStop , ChangeCursorDrawDelay , ClearAll , ClearEOL , CompositionStart , CompositionEnd , Cursor , DisableMouse , DisableAltKey , DisableMetaKey , DragEnd , DragStart , DragUpdate , EnableMouse , Highlight , Input , Mode , ModeInfo , PutText , Resize , ScrollScreen , SetIcon , SetScrollRegion , SetTitle , StartBlinkCursor , StopBlinkCursor , UpdateBG , UpdateFG , UpdateSP , UpdateFontFace , UpdateFontPx , UpdateFontSize , UpdateLineHeight , UpdateScreenBounds , UpdateScreenSize , WheelScroll , FocusChanged } export interface ActionType { type : Kind ; col ? : number ; color ? : number ; cols ? : number ; delay ? : number ; disabled ? : boolean ; draw_width ? : number ; draw_height ? : number ; event ? : MouseEvent | WheelEvent ; focused ? : boolean ; font_face ? : string ; font_px ? : number ; height ? : number ; highlight ? : HighlightSet ; icon_path ? : string ; input ? : string ; line ? : number ; line_height ? : number ; lines ? : number ; modeInfo ? : ModeInfoSet ; mode ? : string ; region ? : Region ; text ? : string [ ] [ ] ; title ? : string ; visual ? : boolean ; width ? : number ; } export function putText ( text ) { return { type : Kind . PutText , text , } ; } export function cursor ( line , col ) { return { type : Kind . Cursor , line , col , } ; } export function highlight ( hl ) { return { type : Kind . Highlight , highlight : hl , } ; } export function clearAll ( ) { return { type : Kind . ClearAll , } ; } export function clearEndOfLine ( ) { return { type : Kind . ClearEOL , } ; } export function compositionStart ( ) { return { type : Kind . CompositionStart , } ; } export function compositionEnd ( ) { return { type : Kind . CompositionEnd , } ; } export function resize ( lines , cols ) { return { type : Kind . Resize , lines , cols , } ; } export function updateForeground ( color ) { return { type : Kind . UpdateFG , color , } ; } export function updateBackground ( color ) { return { type : Kind . UpdateBG , color , } ; } export function updateSpecialColor ( color ) { return { type : Kind . UpdateSP , color , } ; } export function modeInfo ( info ) { return { type : Kind . ModeInfo , modeInfo : info , } ; } export function changeMode ( mode ) { return { type : Kind . Mode , mode , } ; } export function startBusy ( ) { return { type : Kind . BusyStart , } ; } export function stopBusy ( ) { return { type : Kind . BusyStop , } ; } export function updateFontSize ( draw_width , draw_height , width , height ) { return { type : Kind . UpdateFontSize , draw_width , draw_height , width , height , } ; } export function inputToNeovim ( input ) { return { type : Kind . Input , input , } ; } export function updateFontPx ( font_px ) { return { type : Kind . UpdateFontPx , font_px , } ; } export function updateFontFace ( font_face ) { return { type : Kind . UpdateFontFace , font_face , } ; } export function updateScreenSize ( width , height ) { return { type : Kind . UpdateScreenSize , width , height , } ; } export function updateScreenBounds ( lines , cols ) { return { type : Kind . UpdateScreenBounds , lines , cols , } ; } export function enableMouse ( ) { return { type : Kind . EnableMouse , } ; } export function disableMouse ( ) { return { type : Kind . DisableMouse , } ; } export function dragStart ( event ) { return { type : Kind . DragStart , event , } ; } export function dragUpdate ( event ) { return { type : Kind . DragUpdate , event , } ; } export function dragEnd ( event ) { return { type : Kind . DragEnd , event , } ; } export function bell ( visual ) { return { type : Kind . Bell , visual , } ; } export function setTitle ( title ) { return { type : Kind . SetTitle , title , } ; } export function setIcon ( icon_path ) { return { type : Kind . SetIcon , icon_path , } ; } export function wheelScroll ( event ) { return { type : Kind . WheelScroll , event , } ; } export function scrollScreen ( cols ) { return { type : Kind . ScrollScreen , cols , } ; } export function setScrollRegion ( region ) { return { type : Kind . SetScrollRegion , region , } ; } export function notifyFocusChanged ( focused ) { return { type : Kind . FocusChanged , focused , } ; } export function updateLineHeight ( line_height ) { return { type : Kind . UpdateLineHeight , line_height , } ; } export function disableAltKey ( disabled ) { return { type : Kind . DisableAltKey , disabled , } ; } export function disableMetaKey ( disabled ) { return { type : Kind . DisableMetaKey , disabled , } ; } export function changeCursorDrawDelay ( delay ) { return { type : Kind . ChangeCursorDrawDelay , delay , } ; } export function startBlinkCursor ( ) { return { type : Kind . StartBlinkCursor , } ; } export function stopBlinkCursor ( ) { return { type : Kind . StopBlinkCursor , } ; }