- AV Catalog
- Field Reports
- For Developers
- OpenDSA Project
- Getting Started
- Newsletter #1
JSAV Pseudo-code API, phase 1
27 June 2012 - 8:35am
I’ve started working on the pseudocode API and wanted to get your input on it before I implement it. I think it can be kept relatively simple (for now) since I can’t come up with use cases where one should do something other than show/hide, (un)highlight, or change the styling of the lines of code. I want to follow the same naming conventions as rest of JSAV, so here’s what I’m thinking:
- Pseudocode can be initialized with jsav.code(codeLines, [options]). codeLines can either be an array (items in array become lines in code) or a string (split on newlines ‘\n’ and then made into lines). At least option to control whether line numbers are shown is needed besides the "normal" JSAV structure options (like left/top for positioning, etc)
- Another way to initialize it from a url of a ﬁle containing the code is with jsav.code(options) with an option url that can be a relative or absolute url. However, same origin policy restrictions in browsers restrict where the code can loaded.
- Lines can be (un)highlighted with code.highlight(indices). Like for arrays, indices can be a number, an array of numbers, or a ﬁlter function. Function isHighlight(index) can be used to check whether a line is highlighted.
- All lines can be made visible/invisible with code.show() and code.hide()
- Single lines can be made visible/invisible with code.show(indices) and code.hide(indices). Indices parameter like for highlight/unhighlight.
- Styling of lines can be changed with code.css(indices, cssProps). Parameters work like for for the array css() function.
- Another common use for the pseudocode is to highlight the current and previous lines like in a visual debugger. For this, I’ve planned function code.setCurrentLine(index) which will highlight the line at given index and, if there already was a line set as current, that will be highlighted with a different color to indicate the previous line. Parameter index should always be a number.
What do you think of this? Any other functionality that is needed at this point?
27 June 2012 - 9:34am#1
Re: JSAV Pseudo-code API, phase 1
Thanks! This addresses the issue that I raised with you earlier about reading code from a ﬁle. Once I work out the syntax for pulling sections of code for display in the modules, we can talk about whether that can be used in this context as well.