2323
2424
2525/*jslint vars: true, plusplus: true, devel: true, nomen: true, indent: 4, maxerr: 50 */
26- /*global define, $, brackets, JSLINT, PathUtils */
26+ /*global define, $, JSLINT, PathUtils */
2727
2828/**
2929 * Allows JSLint to run on the current document and report results in a UI panel.
@@ -47,7 +47,15 @@ define(function (require, exports, module) {
4747 Strings = require ( "strings" ) ,
4848 StringUtils = require ( "utils/StringUtils" ) ,
4949 AppInit = require ( "utils/AppInit" ) ,
50+ Resizer = require ( "utils/Resizer" ) ,
5051 StatusBar = require ( "widgets/StatusBar" ) ;
52+
53+ var PREFERENCES_CLIENT_ID = module . id ,
54+ defaultPrefs = { height : 200 , enabled : true } ;
55+
56+ /** @type {Number } Height of the JSLint panel header in pixels. Hardcoded to avoid race
57+ condition when measuring it on htmlReady*/
58+ var HEADER_HEIGHT = 27 ;
5159
5260 /**
5361 * @private
@@ -212,20 +220,33 @@ define(function (require, exports, module) {
212220 setEnabled ( ! getEnabled ( ) ) ;
213221 }
214222
215-
216223 // Register command handlers
217224 CommandManager . register ( Strings . CMD_JSLINT , Commands . TOGGLE_JSLINT , _handleToggleJSLint ) ;
218225
219226 // Init PreferenceStorage
220- _prefs = PreferencesManager . getPreferenceStorage ( module . id , { enabled : ! ! brackets . config . enable_jslint } ) ;
227+ _prefs = PreferencesManager . getPreferenceStorage ( PREFERENCES_CLIENT_ID , defaultPrefs ) ;
221228 _setEnabled ( _prefs . getValue ( "enabled" ) ) ;
222229
223- // Init StatusBar indicator
230+ // Initialize items dependent on HTML DOM
224231 AppInit . htmlReady ( function ( ) {
232+ var height = Math . max ( _prefs . getValue ( "height" ) , 100 ) ,
233+ $jslintResults = $ ( "#jslint-results" ) ,
234+ $jslintContent = $ ( "#jslint-results .table-container" ) ;
235+
236+ $jslintResults . height ( height ) ;
237+ $jslintContent . height ( height - HEADER_HEIGHT ) ;
238+
239+ if ( _enabled ) {
240+ EditorManager . resizeEditor ( ) ;
241+ }
242+
243+ $jslintResults . on ( "panelResizeEnd" , function ( event , height ) {
244+ _prefs . setValue ( "height" , height ) ;
245+ } ) ;
246+
225247 StatusBar . addIndicator ( module . id , $ ( "#gold-star" ) , false ) ;
226248 } ) ;
227-
228-
249+
229250 // Define public API
230251 exports . run = run ;
231252 exports . getEnabled = getEnabled ;
0 commit comments