Message Boards Message Boards

GROUPS:

Live code templates

Posted 9 months ago
1283 Views
|
3 Replies
|
19 Total Likes
|

Background

I enjoy coding in the FrontEnd (except it crashes and lookup across files does not exist), but I often miss 'hands on keyboard', customizable code templates.

E.g. I often forget to wrap an option name with quotes "_" or I'm starting a new function and would like to avoid retyping Attributes/Options Catch/Check etc.

I don't like palettes for something that I need to do quickly and frequently.

So I created a little package/stylesheet, should work on Win/MacOs with MMA 10.4+

https://github.com/kubaPod/DevTools

In case you are interested and/or have any ideas about this / similar features, let me know here or create an Issue in GitHub.

Topic cross posted on Mathematica.stackexchange: https://mathematica.stackexchange.com/q/164653/5478

Setup

   (*additional package I use to install github assets' paclets,
     you can download .paclet manually if you want 
    *)
Import["https://raw.githubusercontent.com/kubapod/mpm/master/install.m"]
Needs["MPM`"]  

   (*installing the package*)  
MPMInstall["kubapod", "devtools"]

  (*changing default .m stylesheet to a dev's stylesheet*)
CurrentValue[$FrontEnd, "DefaultPackageStyleDefinitions"] = 
 FrontEnd`FileName[{"DevTools", "DevPackage.nb"}]


  (*test*)
FrontEndTokenExecute["NewPackage"]

How to:

  • Ctrl+1 to open a menu

  • navigate with arrows and hit enter/return or hit a shortkey like n / { / [

Customization

Once you setup a new stylesheet the package should have an additional toolbar with 'Edit code templates' button on the top right. Click on it and a user's templates file should open.

It is just a .m file with a header that should explain everything. It will be improved in future.

Example

enter image description here

There is also a dark one based on a build-in ReversedColors.nb stylesheet:

CurrentValue[$FrontEnd, "DefaultPackageStyleDefinitions"
] = FrontEnd`FileName[{"DevTools", "DevPackageDark.nb"}]

enter image description here

3 Replies

enter image description here - Congratulations! This post is now a Staff Pick as distinguished by a badge on your profile! Thank you, keep it coming!

v0.7.0 (21-02-2018) support for V10.4

As of v0.7.0 code templates will work on V10.4, probably even in earlier versions but I need to check that.

For pre V11 a notebook approach is used instead of an AttachedCell based menu. To enable attached cell method in earlier versions you can run

CurrentValue[$FrontEnd, {TaggingRules, "DevTools", "MenuMethod"}] = "Cell" (*or "Notebook" *) 

but FE crashed for me once or twice and I was not able to reproduce circumstances so do it on your own risk.

v0.8.0 (06-07-2018) VerificationTest template

Wraps an expression with VerificationTest, automatically filling result and encountered messages slots.

Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract