JSL Text Editor Color Themes

My coworkers were making fun of me for coding with bright backgrounds.  I could use another editor like Sublime or Atom, but JSL Text Editor does come with a lot of convient functionality.  Anyway we could include additional themes?  Preferably darker ones that are easier on the eyes.

 

bright_background.JPG

Tracking Number:

Defect ID: S1429383

15 Comments

In 14 (I think 13, too) you can change the elements in the theme under Preferences > Script Editor.  At one point I had mine set up with the Solarized Theme (link).

Super User

Thanks @MikeD_Anderson but I was aware of this.  However, the interface is clunky and requires changing every detail--which hardly constitutes a theme.  If you could perhaps share the JSL code to recreate the Solarized Dark theme, I would appreciate it.

Here's what I had previously - it may take some tinkering to get it to work.  It looks like every element now has two colors (foreground and background), but this should get you started. 

 

Solarized Dark

Preferences(
	Script Editor Settings(
		Text Color( {131, 148, 150} ),
		Back Color( {0, 43, 54} ),
		Disabled Back Color( {0, 43, 54} ),
		Comment Color( {133, 153, 0} ),
		String Color( {88, 110, 117} ),
		Number Color( {42, 161, 152} ),
		Operator Symbol Color( {88, 110, 117} ),
		Operator Name Color( {38, 139, 210} ),
		Identifier Color( {88, 110, 117} ),
		Brace Color( {203, 75, 22} ),
		Guide Color( {88, 110, 117} ),
		Show Line Numbers( 1 ),
		Wrap Text( 1 ),
		Color Unknown Object Messages( 1 ),
		Save And Restore Document State Information( 1 ),
		JSL Code Folding( 1 ),
		JSL Code Folding Marker( 2 ),
		Allow Additional Code Folding Keywords( 1 )
	)
);

Solarized Light

Preferences(
	Script Editor Settings(
		Text Color( {101, 123, 131} ),
		Back Color( {253, 246, 227} ),
		Disabled Back Color( {253, 246, 227} ),
		Comment Color( {133, 153, 0} ),
		String Color( {147, 161, 161} ),
		Number Color( {42, 161, 152} ),
		Operator Symbol Color( {88, 110, 117} ),
		Operator Name Color( {38, 139, 210} ),
		Identifier Color( {88, 110, 117} ),
		Brace Color( {203, 75, 22} ),
		Guide Color( {147, 161, 161} ),
		Show Line Numbers( 1 ),
		Wrap Text( 1 ),
		Color Unknown Object Messages( 1 ),
		Save And Restore Document State Information( 1 ),
		JSL Code Folding( 1 ),
		JSL Code Folding Marker( 2 ),
		Allow Additional Code Folding Keywords( 1 )
	)
);
Super User

Thanks for sharing the code.  I spent some time trying to change colors with the preferences and the new system is much too complicated.  Changing colors and using Get Preferences didn't give me any valuable information either.  Since I don't know the structure of JSL Text Editor Object, there's no documentation for it, and Get Preferences doesn't return anything useful I believe I am unable to complete this task on my own.

Hi @msharp,

The Script Editor colors are actually managed in a preference file called JMPStyles.PFS and cannot be retrieved using Get Preferences() or set using Set Preferences(). 

I have gone through and created dark theme that looks like this:

JMP Dark Theme.PNG

Unfortunately, the downside to this theme is that the blinking text cursor is still black and can be difficult to see.

I have attached the JMPStyles.PFS file for this theme. You can place this file at "%AppData%\Roaming\SAS\JMP\14" on Windows to apply the theme after restarting JMP.

However, I realize this is not a perfect solution and I will pass this along to our development team for review for a future release of JMP.

Thanks,

Justin Chilton

JMP Testing

Edit: I realize now that these comments to not allow for attaching files. I have included the text you can include in the JMPStyles.PFS file below.

//*** Generated Text, Editing this incorrectly may risk not being able to start JMP ***
Styles(
	JSL(
		Default Enabled(
			Foreground Color( "White" ),
			Background Color( "Medium Dark Gray" )
		),
		Default Disabled(
			Foreground Color( "Medium Light Gray" ),
			Background Color( "Medium Dark Gray" )
		),
		Block Comment(
			Foreground Color( "Light Green" ),
			Background Color( "Medium Dark Gray" )
		),
		Nested Block Comment(
			Foreground Color( "Light Green" ),
			Background Color( "Medium Dark Gray" )
		),
		Line Comment(
			Foreground Color( "Light Green" ),
			Background Color( "Medium Dark Gray" )
		),
		Brace(
			Foreground Color( "White" ),
			Background Color( "Medium Dark Gray" )
		),
		Date(
			Foreground Color( "Medium Light YellowGreen" ),
			Background Color( "Medium Dark Gray" )
		),
		Error( Background Color( "Medium Dark Gray" ) ),
		Plain Text(
			Foreground Color( "White" ),
			Background Color( "Medium Dark Gray" )
		),
		Unknown(
			Foreground Color( "White" ),
			Background Color( "Medium Dark Gray" )
		),
		Identifier(
			Foreground Color( "White" ),
			Background Color( "Medium Dark Gray" )
		),
		Message(
			Foreground Color( "Light BlueCyan" ),
			Background Color( "Medium Dark Gray" )
		),
		Message Unknown(
			Foreground Color( "Medium Light Red" ),
			Background Color( "Medium Dark Gray" )
		),
		Number(
			Foreground Color( "Medium Light Green" ),
			Background Color( "Medium Dark Gray" )
		),
		Operator Name(
			Foreground Color( "Light BlueCyan" ),
			Background Color( "Medium Dark Gray" )
		),
		Platform Name(
			Foreground Color( "Medium Light Orange" ),
			Background Color( "Medium Dark Gray" )
		),
		Operator Symbol(
			Foreground Color( "White" ),
			Background Color( "Medium Dark Gray" )
		),
		String(
			Foreground Color( "Light Purple" ),
			Background Color( "Medium Dark Gray" )
		),
		Block String(
			Foreground Color( "Medium Light Purple" ),
			Background Color( "Medium Dark Gray" )
		),
		Annotation Note(
			Foreground Color( "Medium Dark Gray" ),
			Background Color( "Medium Dark Gray" )
		),
		Annotation Warn(
			Foreground Color( "White" ),
			Background Color( "Gray" )
		),
		Annotation Error(
			Foreground Color( "Light Fuchsia" ),
			Background Color( "Medium Dark Gray" )
		),
		Annotation Fatal(
			Foreground Color( "Light Fuchsia" ),
			Background Color( "Medium Dark Gray" )
		),
		Line Number(
			Foreground Color( "White" ),
			Background Color( "Gray" )
		),
		Brace Light(
			Foreground Color( "Light BlueGreen" ),
			Background Color( "Medium Dark Gray" )
		),
		Bad Brace(
			Foreground Color( "Light Red" ),
			Background Color( "Medium Dark Gray" )
		),
		Control Char(
			Foreground Color( "White" ),
			Background Color( "Medium Dark Gray" )
		),
		Indent Guide(
			Foreground Color( "White" ),
			Background Color( "Medium Dark Gray" )
		)
	),
	Log(
		Default Enabled(
			Foreground Color( "White" ),
			Background Color( "Gray" )
		),
		Default Disabled(
			Foreground Color( "Medium Light Gray" ),
			Background Color( "Gray" )
		),
		Block Comment(
			Foreground Color( "Light Green" ),
			Background Color( "Medium Dark Gray" )
		),
		Nested Block Comment(
			Foreground Color( "Light Green" ),
			Background Color( "Medium Dark Gray" )
		),
		Line Comment(
			Foreground Color( "Light Green" ),
			Background Color( "Medium Dark Gray" )
		),
		Default Background(
			Foreground Color( "White" ),
			Background Color( "Medium Dark Gray" )
		),
		Log Submit(
			Foreground Color( "White" ),
			Background Color( "Medium Dark Gray" )
		),
		Log Output(
			Bold( 0 ),
			Foreground Color( "White" ),
			Background Color( "Gray" )
		),
		Log Output Start(
			Foreground Color( "Medium Light Gray" ),
			Background Color( "Gray" )
		),
		Log Output End(
			Foreground Color( "Medium Light Gray" ),
			Background Color( "Gray" )
		),
		Line Number(
			Foreground Color( "White" ),
			Background Color( "Medium Light Gray" )
		),
		Brace Light(
			Bold( 0 ),
			Foreground Color( "Light BlueGreen" ),
			Background Color( "Medium Dark Gray" )
		),
		Bad Brace(
			Bold( 0 ),
			Foreground Color( "Light Red" ),
			Background Color( "Medium Dark Gray" )
		),
		Control Char(
			Foreground Color( "White" ),
			Background Color( "Gray" )
		),
		Indent Guide( Background Color( "Gray" ) )
	)
)
Super User

 Wow Thanks!  I do look forward to a smoother solution in the future, but this makes me and my eyes super happy!  My colors are slightly different, but that's probably b/c I'm on JMP 13 still (or maybe windows 7?).  B/c of this it's not hard to see the cursor at all since this grey is much lighter.  But if themes are included in the future, lets be sure to change the cursor color as well!

 

jslColorTheme.png

 

I copied the code where applicate for the Log, but wasn't sure what to do for the values: Log Submit, Log Output, Log Output Start, Log Output End, or Call Tip?  This isn't important, I really appreciate your feedback.

Thanks for setting things straight, Justin!  This is a really nice color scheme.  

 

m

Check out my updated post above. I have added colors for a decent looking log.

Here's a screenshot of what it looks like on my computer:

JMP Dark Theme.PNG

This also works on Mac. Go -> Go to Folder -> ~/Library/JMP/14. Then you can add-in that JMPStyles.PFS file that Justin has above.
Nice -- Thanks Dan!