Double-Click and Command Lines

Today I implemented a feature that allows the user to double-click on the output of an external process, and if the text underneath the cursor happens to be a file name, perhaps followed by a line number, then DrJava will jump to that file and line. This helps tremendously when using external compilers.

There seems to be a problem when I want to do a javac -sourcepath ${project.root} -d ${} ${drjava.all.files;sep=" "} on the codebase of DrJava; in that case, DrJava hangs. The same command line works for smaller projects, and compiling DrJava using ant jar also works, so I believe it is a problem with the length of the command line that gets generated.

Unfortunately, javac does not have a command line switch to take the files to compile from a text file on disk, and piping does not work DrJava’s external process pane.

I also discovered that “Find All” highlights aren’t removed anymore; something was apparently optimized away in the last few weeks. And indeed, when I looked at it, I discovered that in revision 4482, a loop calling removeRegion for every region removed by clearRegions() and removeRegions(OpenDefinitionsDocument) had been removed and replaced by a simple call to clear() of the underlying data structure. This did not notify the listeners anymore that regions were removed, causing the highlights never to be removed.

Another issue fixed that bothered me a lot. After all, “Find All” is one of my most prominent additions.


About Mathias

Software development engineer. Principal developer of DrJava. Recent Ph.D. graduate from the Department of Computer Science at Rice University.
This entry was posted in DrJava. Bookmark the permalink.

Leave a Reply