Home | History | Annotate | Download | only in ui
      1 /*
      2  * Copyright (C) 2011 Google Inc. All rights reserved.
      3  * Copyright (C) 2010 Apple Inc. All rights reserved.
      4  *
      5  * Redistribution and use in source and binary forms, with or without
      6  * modification, are permitted provided that the following conditions are
      7  * met:
      8  *
      9  *     * Redistributions of source code must retain the above copyright
     10  * notice, this list of conditions and the following disclaimer.
     11  *     * Redistributions in binary form must reproduce the above
     12  * copyright notice, this list of conditions and the following disclaimer
     13  * in the documentation and/or other materials provided with the
     14  * distribution.
     15  *     * Neither the name of Google Inc. nor the names of its
     16  * contributors may be used to endorse or promote products derived from
     17  * this software without specific prior written permission.
     18  *
     19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     20  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     21  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     22  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     23  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     24  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     25  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     26  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     27  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     28  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     29  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     30  */
     31 
     32 /**
     33  * @interface
     34  */
     35 WebInspector.TextEditor = function() { };
     36 
     37 WebInspector.TextEditor.Events = {
     38     GutterClick: "gutterClick"
     39 };
     40 
     41 /** @typedef {{lineNumber: number, event: !Event}} */
     42 WebInspector.TextEditor.GutterClickEventData;
     43 
     44 WebInspector.TextEditor.prototype = {
     45 
     46     undo: function() { },
     47 
     48     redo: function() { },
     49 
     50     /**
     51      * @return {boolean}
     52      */
     53     isClean: function() { },
     54 
     55     markClean: function() { },
     56 
     57     /**
     58      * @return {string}
     59      */
     60     indent: function() { },
     61 
     62     /**
     63      * @param {number} lineNumber
     64      * @param {number} column
     65      * @return {?{x: number, y: number, height: number}}
     66      */
     67     cursorPositionToCoordinates: function(lineNumber, column) { return null; },
     68 
     69     /**
     70      * @param {number} x
     71      * @param {number} y
     72      * @return {?WebInspector.TextRange}
     73      */
     74     coordinatesToCursorPosition: function(x, y) { return null; },
     75 
     76     /**
     77      * @param {number} lineNumber
     78      * @param {number} column
     79      * @return {?{startColumn: number, endColumn: number, type: string}}
     80      */
     81     tokenAtTextPosition: function(lineNumber, column) { return null; },
     82 
     83     /**
     84      * @param {string} mimeType
     85      */
     86     setMimeType: function(mimeType) { },
     87 
     88     /**
     89      * @param {boolean} readOnly
     90      */
     91     setReadOnly: function(readOnly) { },
     92 
     93     /**
     94      * @return {boolean}
     95      */
     96     readOnly: function() { },
     97 
     98     /**
     99      * @return {!Element}
    100      */
    101     defaultFocusedElement: function() { },
    102 
    103     /**
    104      * @param {!WebInspector.TextRange} range
    105      * @param {string} cssClass
    106      * @return {!Object}
    107      */
    108     highlightRange: function(range, cssClass) { },
    109 
    110     /**
    111      * @param {!Object} highlightDescriptor
    112      */
    113     removeHighlight: function(highlightDescriptor) { },
    114 
    115     /**
    116      * @param {number} lineNumber
    117      * @param {boolean} disabled
    118      * @param {boolean} conditional
    119      */
    120     addBreakpoint: function(lineNumber, disabled, conditional) { },
    121 
    122     /**
    123      * @param {number} lineNumber
    124      */
    125     removeBreakpoint: function(lineNumber) { },
    126 
    127     /**
    128      * @param {number} lineNumber
    129      */
    130     setExecutionLine: function(lineNumber) { },
    131 
    132     clearExecutionLine: function() { },
    133 
    134     /**
    135      * @param {number} lineNumber
    136      * @param {string} className
    137      * @param {boolean} toggled
    138      */
    139     toggleLineClass: function(lineNumber, className, toggled) { },
    140 
    141     /**
    142      * @param {number} lineNumber
    143      * @param {!Element} element
    144      */
    145     addDecoration: function(lineNumber, element) { },
    146 
    147     /**
    148      * @param {number} lineNumber
    149      * @param {!Element} element
    150      */
    151     removeDecoration: function(lineNumber, element) { },
    152 
    153     /**
    154      * @param {!RegExp} regex
    155      * @param {?WebInspector.TextRange} range
    156      */
    157     highlightSearchResults: function(regex, range) { },
    158 
    159     /**
    160      * @param {number} lineNumber
    161      * @param {number=} columnNumber
    162      * @param {boolean=} shouldHighlight
    163      */
    164     revealPosition: function(lineNumber, columnNumber, shouldHighlight) { },
    165 
    166     clearPositionHighlight: function() { },
    167 
    168     /**
    169      * @return {!Array.<!Element>}
    170      */
    171     elementsToRestoreScrollPositionsFor: function() { },
    172 
    173     /**
    174      * @param {!WebInspector.TextEditor} textEditor
    175      */
    176     inheritScrollPositions: function(textEditor) { },
    177 
    178     beginUpdates: function() { },
    179 
    180     endUpdates: function() { },
    181 
    182     onResize: function() { },
    183 
    184     /**
    185      * @param {!WebInspector.TextRange} range
    186      * @param {string} text
    187      * @return {!WebInspector.TextRange}
    188      */
    189     editRange: function(range, text) { },
    190 
    191     /**
    192      * @param {number} lineNumber
    193      */
    194     scrollToLine: function(lineNumber) { },
    195 
    196     /**
    197      * @return {number}
    198      */
    199     firstVisibleLine: function() { },
    200 
    201     /**
    202      * @return {number}
    203      */
    204     lastVisibleLine: function() { },
    205 
    206     /**
    207      * @return {!WebInspector.TextRange}
    208      */
    209     selection: function() { },
    210 
    211     /**
    212      * @return {!Array.<!WebInspector.TextRange>}
    213      */
    214     selections: function() { },
    215 
    216     /**
    217      * @return {?WebInspector.TextRange}
    218      */
    219     lastSelection: function() { },
    220 
    221     /**
    222      * @param {!WebInspector.TextRange} textRange
    223      */
    224     setSelection: function(textRange) { },
    225 
    226     /**
    227      * @param {!WebInspector.TextRange} range
    228      * @return {string}
    229      */
    230     copyRange: function(range) { },
    231 
    232     /**
    233      * @param {string} text
    234      */
    235     setText: function(text) { },
    236 
    237     /**
    238      * @return {string}
    239      */
    240     text: function() { },
    241 
    242     /**
    243      * @return {!WebInspector.TextRange}
    244      */
    245     range: function() { },
    246 
    247     /**
    248      * @param {number} lineNumber
    249      * @return {string}
    250      */
    251     line: function(lineNumber) { },
    252 
    253     /**
    254      * @return {number}
    255      */
    256     get linesCount() { },
    257 
    258     /**
    259      * @param {number} line
    260      * @param {string} name
    261      * @param {?Object} value
    262      */
    263     setAttribute: function(line, name, value) { },
    264 
    265     /**
    266      * @param {number} line
    267      * @param {string} name
    268      * @return {?Object} value
    269      */
    270     getAttribute: function(line, name) { },
    271 
    272     /**
    273      * @param {number} line
    274      * @param {string} name
    275      */
    276     removeAttribute: function(line, name) { },
    277 
    278     wasShown: function() { },
    279 
    280     willHide: function() { },
    281 
    282     /**
    283      * @param {?WebInspector.CompletionDictionary} dictionary
    284      */
    285     setCompletionDictionary: function(dictionary) { },
    286 
    287     /**
    288      * @param {number} lineNumber
    289      * @param {number} columnNumber
    290      * @return {?WebInspector.TextEditorPositionHandle}
    291      */
    292     textEditorPositionHandle: function(lineNumber, columnNumber) { },
    293 
    294     dispose: function() { }
    295 }
    296 
    297 /**
    298  * @interface
    299  */
    300 WebInspector.TextEditorPositionHandle = function()
    301 {
    302 }
    303 
    304 WebInspector.TextEditorPositionHandle.prototype = {
    305     /**
    306      * @return {?{lineNumber: number, columnNumber: number}}
    307      */
    308     resolve: function() { },
    309 
    310     /**
    311      * @param {!WebInspector.TextEditorPositionHandle} positionHandle
    312      * @return {boolean}
    313      */
    314     equal: function(positionHandle) { }
    315 }
    316 
    317 /**
    318  * @interface
    319  */
    320 WebInspector.TextEditorDelegate = function()
    321 {
    322 }
    323 
    324 WebInspector.TextEditorDelegate.prototype = {
    325     /**
    326      * @param {!WebInspector.TextRange} oldRange
    327      * @param {!WebInspector.TextRange} newRange
    328      */
    329     onTextChanged: function(oldRange, newRange) { },
    330 
    331     /**
    332      * @param {!WebInspector.TextRange} textRange
    333      */
    334     selectionChanged: function(textRange) { },
    335 
    336     /**
    337      * @param {number} lineNumber
    338      */
    339     scrollChanged: function(lineNumber) { },
    340 
    341     editorFocused: function() { },
    342 
    343     /**
    344      * @param {!WebInspector.ContextMenu} contextMenu
    345      * @param {number} lineNumber
    346      */
    347     populateLineGutterContextMenu: function(contextMenu, lineNumber) { },
    348 
    349     /**
    350      * @param {!WebInspector.ContextMenu} contextMenu
    351      * @param {number} lineNumber
    352      */
    353     populateTextAreaContextMenu: function(contextMenu, lineNumber) { },
    354 
    355     /**
    356      * @param {string} hrefValue
    357      * @param {boolean} isExternal
    358      * @return {!Element}
    359      */
    360     createLink: function(hrefValue, isExternal) { },
    361 
    362     /**
    363      * @param {?WebInspector.TextRange} from
    364      * @param {?WebInspector.TextRange} to
    365      */
    366     onJumpToPosition: function(from, to) { }
    367 }
    368 
    369 /**
    370  * @interface
    371  */
    372 WebInspector.TokenizerFactory = function() { }
    373 
    374 WebInspector.TokenizerFactory.prototype = {
    375     /**
    376      * @param {string} mimeType
    377      * @return {function(string, function(string, ?string, number, number))}
    378      */
    379     createTokenizer: function(mimeType) { }
    380 }