Features

Debugger


Start Debugging

  • Simply click on the debug icon and the simulator should start.
  • You should not need to make any changes to your code.
  • Debugger libraries and require statements are added for you automatically.

Breakpoints

  • You can set a breakpoint by clicking on the line number in the left hand side of the editor.
  • Breakpoints can be unset in the same way.
  • You can also do this while the simulator is running, this is very useful to quickly check if a line of code is executing.

Step Functions

  • Once at a breakpoint you can step over, step in, step out, or run to cursor.
  • Step in will go into calling functions. Step over will skip them. Step out will skip lines until the function returns.
  • You can use run to cursor instead of placing an additional breakpoint.

Variables Viewer

  • Variables view allows you to see all local and global variables at a breakpoint.
  • You can double click on a variable to jump to its declaration in the editor.
  • Variables streamed from the debugger show up in the code completion.

Watches

  • You can create watches by double clicking on the "Enter new watch" field in the variables view.
  • Alternatively you can right click on a variable and select create fixed watch.
  • You can also enter expressions as watches, just be careful of calling functions with side effects.

Call Stack

  • The call stack is like a history of function calls.
  • This is very useful when debugging error states in utility functions caused by incorrect parameters.
  • You can double click on the callstack frames to go to the caller line.

Editor


Overview

Opening Projects

  • A project is simply a folder with a main.lua or GliderProperties.proj file in it.
  • Simply drag and drop the project folder into the editor area.
  • Alternatively you can open a file via file -> open project.

Code Completion

  • You can invoke code completion by pressing ctrl-space in the editor.
  • Glider will look into all your project files, even library files to find the most helpful suggestions for you.
  • The class aware autocompletion feature will keep track of type information so you dont have to.

Completion Shortcuts

  • You can enter abbreviations instead of full variable names and Glider will complete it for you.
  • Abbreviations can be partial prefixes, camel case letters, or a combination of both.
  • Glider will leverage the class aware autocompletion system to expand out variables for you.

Code Navigation

  • Simply ctrl-click on a symbol to see where it is declared. Ctrl-click on a function to see where it is defined.
  • You can also hover the caret over a symbol to see where it is used in the current file.
  • Right click on a symbol and click "Find usages" to see where it is used in the entire project.

Semantic Highlighter

  • Globals are in green, unused variables are underlined in grey.
  • You can easily catch accidental globals and unnecessary variables.
  • Even unused globals are properly detected.

Fullscreen Mode

  • You can double click on the editor tab to maximize it.
  • You can also go to view -> fullscreen to maximize the entire window.
  • Alternatively you can undock an editor
  • Quickly jump to key symbols in the current document by just double clicking on them in the navigator.
  • Single click on any project file to see a quick view of its contents in the navigator.
  • You can quickly spot stray globals in the globals node.

Profiler


Start Profiler

  • Simply click on the profile icon to start.
  • You should not need to make any changes to your code.
  • Your results will show up in a profiler tab and will refresh in real time.

Timeline

  • You can monitor the memory and cpu usage of your project.
  • Analyze memory over time to spot leaks.
  • Investigate CPU spikes to help direct optimization.

Function Times

  • Self time is the amount of time spent in the function minus all calling functions.
  • Sort by percent time spent to pinoint bottlenecks.
  • Source code line is also shown on the left column.

Hitcounts

  • Each time a line is encountered the hitcount is incremented.
  • Hitcounts gives you a feel for highly used lines of code.

Callgraphs

  • Callgraph shows you a birds eye view of function connectivity.
  • Darker lines indicate higher number of calls.
  • Callgraphs can be used to pinpoint functions with high convergence are good targets for optimization.

Jump to Line

  • Double click on any row in function time and hitcount graphs to open up the line in the editor.
  • This is very useful to quickly navigate to bottleneck code.

Asset Manager


Overview

  • You can open the manger by right clicking on a project-> Set Configuration-> Customize.
  • Configurations are different versions of your project.

What are configurations?

  • You may rename configurations by double clicking the name.
  • You can also clone existing configurations to quickly make new versions of your app.

Adding external libraries

  • External libraries help you re-use commonly used code and assets.
  • You can also internationalize your images and sounds and easily put them into their own configurations.
  • Libraries are closely integrated with code completion.

Switching configurations

  • You can switch configurations via the menu next to the build icon.
  • The currently selected configuration is shown to the right of each project node.

Code insertions

  • Have you ever manually set an is_free flag? Doing so can be error prone and tedious. You can take the manual labor out of the picture by using the code insertion feathre.
  • These are simply small snippets of code that are inserted into the top of your main.lua file.
  • These are also a part of the configuration so you can easily make free and paid versions of your app this way.

Building

  • The build process will merge your libraries and apply code insertion.
  • Debugger and profiler libraries are also stripped so they do not make it to your end product.
  • You can also choose to build all your configurations at once using the Build all configurations icon.