![]() ![]() Its plugin manage is built into the OS and as such makes management and discoverability fairly easy. Light Table’s plugin ecosystem is still pretty small but it seems to be growing slowly. Similarly, both keymappings and behaviors are using ClojureScript to configure, manly maps - this is similar to how all Emacs scripting is done in Emacs Lisp. Both keymapping and behaviors have system and user files where all of the configuation belongs, much like Sublime. LT seems to borrow partially from Emacs and partially from Sublime Text as far as keymapping and behavior goes. Of course, you’ll almost always need a bit of ClojureScript to hook it into the platform, but much of that can be copypasta'ed from the web. ![]() Since the functionality is treated as data, it makes reconfiguring or extending the editor or platform quite simple in any language that can compile down to JS. Light Table’s architecture (and ClojureScript as a language) lend themselves well to creating an extensible and introspectable environment. Keybindings are super easy to manipulate for various parts of the editor, and the general behavior and functionality of the editor is just as easy to configure. As such, you’ll be forced to force quit Light Table and restart it. The biggest caveat I’ve found with this feature I want to document, which I should’ve considered prior to attempting, was that if you enter a debugger statement in your JavaScript it will hang the entire editor since it will halt the JS runtime. This is great for working on a JS/ClojureScript application since you can control nearly every aspect of your code without even leaving your editor. Since Light Table is built on node-webkit, it supports the ability to call up a browser right inside of the editor. As mentioned before - just select the connection you want to eval against and it’s good to go. This is great for figuring out where your code is going to throw exceptions or return slightly incorrect values without breaking your focus. Rather than using console logging or a dedicated debugger, Light Table lets you evaluate a line of code right there in the editor with a simple keychord. It’s quite a nice way to write your code if you’re working on an application in one of the supported languages. Light Table’s REPLs are typically in Live mode - where you’ll get inline evaluation without performing any commands to eval your code. Those familiar with Emacs will appreciate the fact of being able to fire up REPLs on the fly. ![]() You can also include additional connections from the plugin manager or write your own for your favorite runtime. Some of the defaults include an embedded or external browser, a local or remote Clojure REPL, the Light Table UI itself, Node, or Python. The connections allow you to bind to different runtimes and environments to your REPLs or watches, as previously mentioned. ![]() I personally had an issue with this working reliably in testing, but it was likely something I was doing wrong. Choose a connection (what runtime you want to evaluate your watches/code), Set a watch, start making changes or run your application and the watchers will update the values as they run. Light Table has watchers available in JavaScript, ClojureScript, and Python to track values in real time. Despite being largely popular in, and targeted for, the Clojure community, the only component still written in Clojure is the set of bindings to load up a Clojure REPL. As such, it does a really good job of providing an interactive environment for ClojureScript, JavaScript, and Clojure. Light Table is almost entirely written in ClojureScript. It uses the node-webkit library as a foundation for the interface/application, and uses CodeMirror as the editor. While initially rough around the edges and requiring boot from a Java jar file, Light Table is continuously being polished up and has a pretty solid UI. Light Table was initially developed by Chris Granger in 2012 - receiving over $316K in a Kickstarter program. I’ve enjoyed a number of things about this editor and the plugins I’ve picked up, but we’ll get to the pros and cons in a bit - let’s start with basic information about the editor. It’s not my first experience with the editor by a long shot, but this was the longest continuous streak I’ve spent exclusively editing with it (okay, technically I edited git messages in Vim because I forgot to assign EDITOR to the command line light app to launch the GUI). My text editor journey began with Light Table. Light Table Part 1: An Introduction JContinue to Part 2: A Retrospective Light Table Matt Machuga: Software Engineer / Engineering Manager / Educator ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |