Nightcode Changelog

What's new in Nightcode 2.6.0

Apr 15, 2018
  • Fixes for the "Run with REPL" feature. On Windows it was broken in Boot projects, and in the Linux deb/rpm versions I think it was just broken across the board. If you see an error about the task not existing, you probably have an old version of Boot installed and should update it with boot -u.
  • Improved the editor in non-Clojure files.
  • Added carp to the list of file extensions that are treated as Clojure files, so you can edit Carp projects in Nightcode.
  • Lastly the music template is updated to the latest version of edna. Keep in mind that even though Nightcode's instaREPL doesn't work with most 3rd party libraries, it actually does work with edna as it keeps a copy of the library internally.

New in Nightcode 2.5.10 (Apr 2, 2018)

  • This release updates the edna template.

New in Nightcode 2.5.9 (Mar 30, 2018)

  • Made the editor scroll to your cursor when you undo/redo.
  • Updated the internal JRE to 10 and replaced the old Audio template with a new one called Music that uses my new library, edna.

New in Nightcode 2.5.8 (Mar 29, 2018)

  • This release adds another feature that every other editor on the planet has: When you undo/redo and your cursor isn't visible, it scrolls to it. Also updated the internal JRE to 10 and replaced the old Audio template with a new one called Music that uses the edna library.

New in Nightcode 2.5.7 (Jan 29, 2018)

  • This release updates the internal JRE version to 9.0.4 for the mac/windows installers.

New in Nightcode 2.5.6 (Jan 14, 2018)

  • This release adds support for selecting the nearest form with alt+arrow up and alt+arrow down. On Macs, this is the option key.

New in Nightcode 2.5.4 (Dec 17, 2017)

  • This release updates Nightcode and all the built-in templates to use Clojure 1.9! I also tried my best to make the templates work with Java 9 (I think the only one that doesn't is the graphics template, but the issue appears to only be fixable in the quil library itself).

New in Nightcode 2.5.3 (Nov 26, 2017)

  • This release fixes a problem that caused the lein build commands to break. Thanks to Github user adamhoward for reporting the bug.

New in Nightcode 2.5.2 (Nov 26, 2017)

  • Have you ever pasted a block of code from Github and was frustrated to find it all ended up on one line? Yeah...sorry about that. This has been a longstanding problem caused by an idiosyncrasy with browser-based editing. Unfortunately I think it's still an issue on Windows, so this will need more debugging work to resolve there.

New in Nightcode 2.5.1 (Oct 30, 2017)

  • This is an emergency release to fix a bug that sometimes caused the file you edit to be evaluated even when the instarepl was not turned on. Most of the time you wouldn't even notice, but I wanted to get the fix out because that can clearly cause issues depending on what your code is doing.

New in Nightcode 2.5.0 (Oct 30, 2017)

  • This release finally adds a feature that every other IDE on the planet has: detecting when open files have been modified by an external program. If it happens, you'll see a modal dialog giving you the option to reload the file. This finally closes an issue from almost 4 years ago.
  • It also adds a feature that was in Nightcode 1.x, but never made it over when I rewrote it. When a directory is selected, a file grid is displayed. It's a nicer way to click through nested directories because the click targets are so big, and I even show special icons for some file types.

New in Nightcode 2.4.0 (Oct 2, 2017)

  • This release updates the Mac and Windows installers to bundle the newly-released JRE 9! The Linux installers are still bundled with JRE 8 until I figure out how to configure 9 on my system. The biggest improvement this brings is that I can now use the new Java 9 Process API, which finally allows me to fix the longstanding problem on Windows where the "Stop" button didn't actually work. This has been a painful problem since the beginning, because when you kill a process on Windows, the child processes aren't automatically killed. With this new API I was able to detect all the child processes and kill them as well.
  • Additionally, I updated the Clojure version to 1.9.0-beta1, and I fixed an editor issue in which double-colon keywords (like ::foo) were displaying with an error.

New in Nightcode 2.3.6 (Jul 17, 2017)

  • This release fixes a few more editor bugs. Firstly, the first character was being lost when inputting something in the build pane when using read-line or equivalent. Secondly, some regular expressions were being incorrectly marked as errors (because the editor was treating them as JS regexes rather than Java regexes). Thank you to Github user NathanSmutz for reporting both issues!

New in Nightcode 2.3.5 (Jul 3, 2017)

  • This release fixes a bug that incorrectly caused argument literals to display as an error in the editor.

New in Nightcode 2.3.4 (Jul 1, 2017)

  • This release updates libraries, both in Nightcode itself and in several templates. The internal JRE 8 version is now update 131. It also improves font rendering on Linux; thanks to Github user JakubJecminek for the PR.

New in Nightcode 2.3.3 (Mar 20, 2017)

  • Fixes a bug that caused the REPL (and build pane in general) to randomly freeze

New in Nightcode 2.3.2 (Mar 1, 2017)

  • Sorry for the quick succession of releases, but a small regression appeared in the previous release. When selecting text with shift+arrows, the selection would disappear after letting go of shift.

New in Nightcode 2.3.1 (Feb 28, 2017)

  • This release fixes a bad REPL bug. In certain circumstances, old REPL history could prevent any new REPL inputs. Thanks to Github user jamesnvc for the bug report.
  • Added a "Test" button for Leiningen projects, just like the old Nightcode.

New in Nightcode 2.3.0 (Jan 30, 2017)

  • This release adds auto-indentation similar to aggressive-indent-mode and updates some templates.

New in Nightcode 2.2.2 (Jan 26, 2017)

  • This release fixes the "Reload Selection" button, which has been broken for God knows how long.
  • Also updated the play-cljs template once again.

New in Nightcode 2.2.1 (Jan 24, 2017)

  • Updates the bundled JVM to the latest version, 8u121.
  • Restoring the JAR file link on the website.

New in Nightcode 2.2.0 (Jan 10, 2017)

  • This release adds support for cloning git repositories. This was a feature in the Nightcode 1.x that hadn't made it into the new version until now. Just go to the Start menu and choose "Clone from Git" to use it.

New in Nightcode 2.1.8 (Dec 5, 2016)

  • Adds the graphics (Quil) template back.
  • Updates the game template.

New in Nightcode 2.1.6 (Oct 30, 2016)

  • This release fixes a huge performance drop that occurred after pasting multi-line forms into the REPL.

New in Nightcode 2.1.5 (Oct 6, 2016)

  • Fixes a bug in which the undo/redo keyboard shortcuts in non-clojure files would undo/redo too much.
  • The instarepl button now only shows in .clj files, not .cljs (because it evalutes in a Clojure environment).
  • Hoplon files are now treated as clojure files.
  • The console now shows more history.
  • also rewrote all the JavaScript code that was previously used for the editor into ClojureScript, so it is much more maintainable.

New in Nightcode 2.1.4 (Sep 28, 2016)

  • This release fixes a bug in the text editor when non-clojure files are open -- the cursor would not appear in the correct location until you started typing. It also updates clojure to 1.9.0 alpha 13.

New in Nightcode 2.1.3 (Sep 16, 2016)

  • This release improves the performance of the REPL after a long session. It can tend to slow down due to too much text, so I set a lower limit before truncating old REPL history.
  • Also, changed the console project template to use Leiningen again for the sake of beginner tutorials that are still Leiningen-focused.
  • The other templates are still using Boot.

New in Nightcode 2.1.2 (Sep 13, 2016)

  • This release brings a few editor improvements.
  • First, it fixes a situation where the editor would show errors when there actually weren't any, because it wasn't refreshing after the errors were corrected.
  • Second, it makes sure the instarepl sees leading characters like single quotes and @ signs when evaluating top-level forms.

New in Nightcode 2.1.1 (Sep 6, 2016)

  • This release fixes a few UI issues. Firstly, it allows the custom task buttons for Boot projects wrap onto new lines (previously, only one line was allowed, so projects with lots of Boot tasks would display the buttons in an unreadable way). Secondly, it properly removes open files if their projects are also removed (previously, they would remain open in the tab list but would not be viewable). Lastly, it updates the play-cljs template to reflect the most recent version.

New in Nightcode 2.1.0 (Sep 2, 2016)

  • This release adds support for Boot projects! When you import a project with a build.boot file, you'll see the Boot tab become enabled in the build pane. Any custom tasks defined in that file will appear as buttons.
  • Also updated all the templates to be Boot projects. I replaced the graphics template, which used Quil, with a game template, which uses my play-cljs game library.
  • Fixed an editor bug that caused the arguments in short-form functions, like #(+ %1 %2), to display as errors. Thanks to github user jggrant for reporting the issue.

New in Nightcode 2.0.4 (Aug 24, 2016)

  • Adds a "Reload Selection" button, equivalent to the old "Eval Selection" button in 1.x. If nothing is selected in the currently-open editor, it will eval the nearest outer form (the one that is highlighted).
  • Additionally, made another nice editor performance improvement. If you noticed a bad performance slowdown when there are temporary reader errors (such as, when you are in the middle of writing a map literal), this version should fix that.

New in Nightcode 2.0.3 (Aug 3, 2016)

  • Makes the auto-save feature pause for a second before saving (rather than saving after every keystroke)
  • Improves editor performance in large files

New in Nightcode 2.0.2 (Jul 21, 2016)

  • Nightcode locks up on Linux when pressing "Open in File Browser" (issue #184)
  • Nightcode locks up if output doesn't stop (issue #181)
  • Shortcuts don't work on Linux (issue #177)
  • Switch theme to Light, restart REPL, get dark REPL (issue #164)

New in Nightcode 2.0.1 (Jul 18, 2016)

  • New project contents not populating when project name has capital letters (issue #178)
  • Cannot copy/select text in REPL pane (issue #174)
  • Can't use arrow keys in REPL to get to previous entries (issue #165)
  • REPL acts strangely due to not escaping HTML characters (reported by Yoko Harada)

New in Nightcode 2.0.0 (Jul 13, 2016)

  • Total rewrite

New in Nightcode 1.3.2 (Jun 21, 2016)

  • Improve parinfer behavior.

New in Nightcode 1.3.1 (Jun 3, 2016)

  • This release fixes a memory leak in the editor. If you've noticed excessive memory usage, this should hopefully fix it.
  • Also reduced the JAR size a little bit by removing some unused binaries.

New in Nightcode 1.3.0 (May 19, 2016)

  • Updates Leiningen to 2.6.1. It also updates other libraries and several templates. Lastly, I did a lot of refactoring and the editor should be faster now.

New in Nightcode 1.2.1 (Apr 15, 2016)

  • This release fixes the bug that caused the lower right REPL (launched via "Run with REPL") to be completely unusable on Windows (thanks to Reddit user straechav and Github user jconti for the bug reports). Secondly, it fixes a bug in which parens were mangled when pasting code (thanks to Github user jcrumpton for the bug report). Lastly, it fixes a small auto-indentation bug.

New in Nightcode 1.2.0 (Apr 7, 2016)

  • In addition to the usual editor bug fixes, this release changes the indentation behavior so it "snaps" the code to semantically meaning places, rather than always moving the code two spaces right or left. This is particularly useful with Parinfer, since it uses indentation to adjust delimiters.

New in Nightcode 1.1.4 (Apr 4, 2016)

  • This release fixes more editor and REPL bugs, including auto-indentation breaking in map literals and parinfer not running when things are pasted. For the time being, the Git view only shows past commits, not uncommitted changes, because the latter feature seems to lock up in some repos. It also fixes an undo issue I just spotted in 1.1.3, which is why it is released on the same day.

New in Nightcode 1.1.3 (Apr 4, 2016)

  • This release fixes more editor and REPL bugs, including auto-indentation breaking in map literals and parinfer not running when things are pasted. For the time being, the Git view only shows past commits, not uncommitted changes, because the latter feature seems to lock up in some repos.

New in Nightcode 1.1.2 (Mar 24, 2016)

  • This release fixes a general REPL issue caused by the introduction of parinfer. There were times when, after continued use of either REPL, they would become "corrupt" because I was accidentally running parinfer on old REPL history. This has now been resolved.

New in Nightcode 1.1.0 (Mar 17, 2016)

  • This release replaces Paredit with Parinfer, a new editing mode for Lisp that is great for beginners. It also shows reader errors when reloading code in the REPL (thanks to Github users Grahack and fredokun for reporting this in issues #140 and #150). It also uses default button widths to prevent them from being truncated on high-res displays (thanks to Github user AvramRobert for reporting this in issue #154).

New in Nightcode 1.1.0 Snapshot (Mar 7, 2016)

  • Add parinfer

New in Nightcode 1.0.1 (Feb 1, 2016)

  • This release fixes a few bugs that emerged in the 1.0.0 release. Firstly, some build commands were broken if you had :gwt or :cljsbuild in your global ~/.lein/profiles.clj file, because it was looking there first instead of prioritizing your project.clj file. Secondly, the lower-left REPL is now always launched within Nightcode's process instead of a separate process, to avoid it becoming a zombie process on Windows.

New in Nightcode 0.4.7 (Aug 1, 2015)

  • This release updates Clojure to 1.7 along with many libraries.
  • The paredit cheat sheet is now non-modal so you can look at it as you type; thanks to Github user NathanSmutz for the PR. Lastly, you can now delete the # symbol when paredit is enabled; thanks to Github user dubiousdavid for the bug report.

New in Nightcode 0.4.6 (Mar 23, 2015)

  • This release fixes a problem with the Clojure game template introduced in the last version.

New in Nightcode 0.4.5 (Mar 20, 2015)

  • This release works around a bug in Java 8u40 that caused the JAR version of Nightcode to not appear in the dock and not receive keyboard input on Mac OS X (Yosemite). Thanks to Reddit user lspector for the bug report.
  • It also improves the templates. The Graphics template, which uses Quil, now has a ClojureScript version. In the Sounds template, I decided to replace Overtone with Pink and Score. Overtone is nice, but it relies on SuperCollider, which can make it difficult to get working on some computers, and doesn't work at all in the App Store version of Nightcode due to the sandbox. Pink and Score are pure JVM libraries, so they should be much more simple to get working anywhere.

New in Nightcode 0.4.4 (Feb 13, 2015)

  • This release updates various libraries, including Leiningen, lein-droid, lein-fruit, and various libraries in the templates. It also fixes a few issues with the App Store version; the problems compiling Java files has been resolved, and the permissions problems resulting from having too many projects in the project tree has also been resolved.

New in Nightcode 0.4.3 (Dec 23, 2014)

  • This release updates a variety of libraries, including for the text editor and git client. Additionally, it adds templates for a JavaScript game and web app; both will set you up with Clojure on the server-side.

New in Nightcode 0.4.2 (Nov 10, 2014)

  • This release updates lein-droid so it works once again with the latest Android SDK. It also updates libraries in several templates. Lastly, code completion has been tweaked to be less eager (it only shows after two characters).

New in Nightcode 0.4.1 (Oct 18, 2014)

  • This release updates several libraries. JGit has been updated, and deleted files are now correctly committed in the built-in git client. Both the Clojure and Java game templates have been updated. The Android and iOS integrations have been updated to work correctly with the newest SDKs. Lastly, the Mac App Store version will now support Retina displays (if you're using the JAR version, you just need to install JDK 8 to get Retina support).

New in Nightcode 0.4.0 (Sep 26, 2014)

  • This release improves the Git integration that came in the last release. You can now pull/push/commit, and the cloning functionality is more reliable (which you can use by choosing the "Download" option in the new project window).
  • Additionally, it fixes an issue in the Mac App Store version in which the Build button was broken; thanks to Reddit user /u/mccoytg for the bug report.

New in Nightcode 0.3.12 (Sep 16, 2014)

  • This release adds some initial Git integration to Nightcode. First, projects with a git repository will show a new item in the sidebar which displays a simple viewer where you can browse your past commits and see what uncommited changes you have. Second, there is a new option in the new project window called "Download", where you can clone a git repository.
  • Additionally, Leiningen was updated from 2.4.2 to 2.5.0. LogCat now works again on Windows -- I have no idea how long it was broken, but nobody reported it so I assume few were affected. Lastly, to make room for the new download option, I removed the .NET template. It was outdated anyway, since ClojureCLR 1.6.0 was just released.

New in Nightcode 0.3.11 (Aug 28, 2014)

  • This release makes the Eval button evaluate whatever form the cursor is inside of. When code is selected, it evaluates only that selection as it did before. Thanks to Github user birdspider for the PR.
  • There have been a few behavior adjustments. Paredit is once again disabled by default, because I have found that beginners are very confused by it. Also, the splashscreen now loads much faster, because it is using the AWT splashscreen feature.
  • A few bugs were also fixed. Firstly, toggling the Paredit button now affects the build pane (thanks to reddit user /u/rdExplorer for the bug report). Secondly, the font size is now prevented from going below 8; previously, it was allowed to go to zero, which actually caused an exception on Windows and left Nightcode (and Nightmod) in a broken state that could only be fixed by manually editing where the preference was stored.
  • Lastly, the Java game template now supports building a web version using libGDX's GWT backend. This does not apply to the Clojure game template, because GWT only works on Java code. Compiling play-clj games to JavaScript may be possible using another technique, but I haven't had sufficient time to look into it.

New in Nightcode 0.3.10 (Aug 12, 2014)

  • This release fixes an error causing the REPL to time out.

New in Nightcode 0.3.9 (Aug 12, 2014)

  • This release allows you to set the look-and-feel and custom shortcuts by saving this file to ~/nightcode.edn or ~/.config/nightcode.edn. This replaces the old system which allowed you to store custom shortcuts in a file in the current working directory. Note that the file structure has changed to allow other settings to be stored.
  • The editor now uses the latest RSyntaxTextArea, which fixes a longstanding bug in which double-quotes inside string literals messed up syntax highlighting. Paredit is now enabled by default, and it now allows you to delete selections with backspace.
  • The default project.clj creation when importing non-Leiningen projects now works again; thanks to /u/rdExplorer for the bug report. The Find field now correctly removes all highlights when cleared. Closing unsaved files now displays a warning dialog. Lastly, as usual, various templates have been updated to use the latest libraries.

New in Nightcode 0.3.8 (Jul 8, 2014)

  • Added an "Eval" button to the build pane in Clojure projects.
  • The JAR version of Nightcode now allows you to customize the keyboard shortcuts by saving this file in the same directory as the JAR itself. You may then edit it to change the shortcuts and then run the JAR from the command line.
  • Leiningen is now at version 2.4.2 and the web template has the latest version of ClojureScript.
  • Bug fix:
  • Some Paredit commands stopped working.
  • Dialogs weren't staying on top.

New in Nightcode 0.3.7 (Jun 26, 2014)

  • This release updates Leiningen to 2.4.0 and updates the libraries in various templates.
  • Additionally, the Reload button now always reloads the current file, even if it hasn't been edited.
  • Lastly, the AltGr key should no longer be treated as Ctrl, so various shortcuts won't be inadvertently invoked.