jarhart / sublimesbt Goto Github PK
View Code? Open in Web Editor NEWSBT build tool integration for Sublime Text 2 and Sublime Text 3.
License: MIT License
SBT build tool integration for Sublime Text 2 and Sublime Text 3.
License: MIT License
I'm working in a play project.
To reproduce, I run "Start SBT". Then I check ps aux | grep sbt
and see that the play session has started. Then I run "Kill SBT". Running ps aux | grep sbt
still shows it running. However, Sublime has fully disconnected from it. Running "Show Console" just shows a blank panel.
I'm running Play 2.1.1, Scala 2.10.0, and Java 1.6.0_43. I'm on Sublime Text 2.0.1, build 2217 on OS X 10.6.8.
sublimeSBT doesn't echo commands properly when sbt 0.13.0 is used.
Specifically, if you type a command in the sublimeSBT panel, the characters echo as per usual. However, when ENTER is typed, the command is overwritten by the first line of the output produced by sbt.
For example, in a project that has already built successfully, here is the contents of the panel immediately before ENTER is typed after a compile command:
comp332-func332 1.0> compile
and here is the contents after the ENTER has been typed
comp332-func332 1.0> [success] Total time: 0 s, completed 24/09/2013 8:50:53 AM
I'm running Sublime Text 3 (3053) on Mac OS X 10.8.5 with Scala 2.10.2 and sbt 0.13.0 installed by Homebrew.
Some time ago SBT deprecated the "test-only" (and other hyphen style commands), and later removed them entirely, in favor of camelCase commands, such as "testOnly" consequently:
sbt:ship-service> ~ test-only com.acme.ship.ServiceImplSpec
[error] Expected ID character
[error] Not a valid command: test-only
Instead, we should use:
sbt:ship-service> ~testOnly com.acme.ship.ServiceImplSpec
I'm a fan of using primary+shift+R
in order to look up constants and values from my project across different files; however when I have SublimeSBT installed, while the lookup window does show up, it does not actually take me to the file with the value declaration in the file.
I did confirm that uninstalling SublimeSBT removes that issue and let's me use the lookup again.
I am the author of the Scala Worksheet plugin for Sublime Text 3 (https://bitbucket.org/inkytonik/scalaworksheet).
I've noticed that when I run a worksheet while SublimeSBT is installed, I get a crash from SublimeSBT (see below for full trace).
I presume it's being triggered in some way by the way in which I create the worksheet view, but I'm not having much luck tracking it down. Is there something that I can do in my plugin to avoid this happening? Or is a fix at the SublimeSBT end more appropriate?
Tony
Traceback (most recent call last):
File "/Applications/Sublime Text.app/Contents/MacOS/sublime_plugin.py", line 271, in on_modified
callback.on_modified(v)
File "/Users/asloane/Library/Application Support/Sublime Text 3/Installed Packages/SublimeSBT.sublime-package/sublimesbt.py", line 261, in on_modified
for reporter in maybe(self._reporter(view)):
File "/Users/asloane/Library/Application Support/Sublime Text 3/Installed Packages/SublimeSBT.sublime-package/sublimesbt.py", line 284, in _reporter
return Project(window).error_reporter
File "/Users/asloane/Library/Application Support/Sublime Text 3/Installed Packages/SublimeSBT.sublime-package/util.py", line 54, in __call__
return cls.instance_cache(window.id(), lambda: type.__call__(cls, window))
File "/Users/asloane/Library/Application Support/Sublime Text 3/Installed Packages/SublimeSBT.sublime-package/util.py", line 43, in __call__
self.__items[key] = f()
File "/Users/asloane/Library/Application Support/Sublime Text 3/Installed Packages/SublimeSBT.sublime-package/util.py", line 54, in <lambda>
return cls.instance_cache(window.id(), lambda: type.__call__(cls, window))
File "/Users/asloane/Library/Application Support/Sublime Text 3/Installed Packages/SublimeSBT.sublime-package/project.py", line 27, in __init__
self.settings)
File "/Users/asloane/Library/Application Support/Sublime Text 3/Installed Packages/SublimeSBT.sublime-package/errorreporter.py", line 12, in __init__
self._marker = ErrorMarker(window, error_report, settings)
File "/Users/asloane/Library/Application Support/Sublime Text 3/Installed Packages/SublimeSBT.sublime-package/errormarker.py", line 13, in __init__
self._highlighter = CodeHighlighter(settings, self._current_error_in_view)
File "/Users/asloane/Library/Application Support/Sublime Text 3/Installed Packages/SublimeSBT.sublime-package/highlighter.py", line 18, in __init__
self._update_highlight_args()
File "/Users/asloane/Library/Application Support/Sublime Text 3/Installed Packages/SublimeSBT.sublime-package/highlighter.py", line 95, in _update_highlight_args
'error': self._create_highlight_args('error'),
File "/Users/asloane/Library/Application Support/Sublime Text 3/Installed Packages/SublimeSBT.sublime-package/highlighter.py", line 101, in _create_highlight_args
style = self._mark_settings(error_type)['style']
TypeError: 'NoneType' object is not subscriptable
On install I get in the console:
Traceback (most recent call last):
File "errormarker in \Apps\Sublime Text\Data\Installed Packages\SublimeSBT.sublime-package", line 28, in mark_errors_in
File "errormarker in \Apps\Sublime Text\Data\Installed Packages\SublimeSBT.sublime-package", line 57, in _mark_errors_in_view
File "errormarker in \Apps\Sublime Text\Data\Installed Packages\SublimeSBT.sublime-package", line 78, in _highlighter
File "highlighter in \Apps\Sublime Text\Data\Installed Packages\SublimeSBT.sublime-package", line 18, in __init__
File "highlighter in \Apps\Sublime Text\Data\Installed Packages\SublimeSBT.sublime-package", line 95, in _update_highlight_args
File "highlighter in \Apps\Sublime Text\Data\Installed Packages\SublimeSBT.sublime-package", line 101, in _create_highlight_args
TypeError: 'NoneType' object is not subscriptable
After this, none of the commands show up in the palette.
This is weird. Using the mouse, when I select up from the bottom of a short file (< 1 screen) to the top, Sublime hangs and must be restarted.
In a long file (> 1 screen), selecting any amount with the mouse going up such that the screen scrolls causes the same behavior.
Disabling SublimeSBT removes the issue. Commenting out SublimeSBT's on_selection_modified
removes the issue.
Pull request coming...
If an SBT project exists, but the project folder doesn't contain a Build.scala file it's not recognized.
Either the folder should be looked for or it should look for the folder or it should look for any .scala file.
On Windows7, the console from Start SBT and from SBT Console doesn't recognize return key presses as command terminators, which leaves no way to enter commands in the console.
Using the plugin with sbt 0.13.1 I'm seeing a JLine bug that causes long prompt lines to be corrupted. A long line like this:
kiama 1.6.0-SNAPSHOT> library/test:run-main org.kiama.example.til.TIL2_3Main src/org/kiama/example/til/factorial.til
displays as this:
/org/kiama/example/til/factorial.til
where the first / occurs at column 80.
The problem is that JLine under certain circumstances inserts space, carriage return characters at the 80th column of output. There appears to be no way to fix this using command-line options or TERM settings since JLine appears to default to this behaviour if the input doesn't come form a terminal.
More detail on the problem can be found in this issue for my Scala worksheet plugin which encounters the same bug:
https://bitbucket.org/inkytonik/scalaworksheet/issue/1/long-input-lines-cause-some-sort-of
I've submitted a pull request that hacks around the bug, not ideal, but it works: #28
Traceback (most recent call last):
File "X/threading.py", line 639, in _bootstrap_inner
File "X/threading.py", line 596, in run
File "sbtrunner in /Users/oxman/Library/Application Support/Sublime Text 3/Installed Packages/SublimeSBT.sublime-package", line 110, in _monitor_output
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x9e in position 59: invalid start byte
I installed Package Control according to the instructions given for sublime-text 3, but when I install SublimeSBT from the package repo I get the following:
Traceback (most recent call last):
File "/home/cfrederickson/bin/sublime_text_3/sublime_plugin.py", line 466, in update_compressed_packages
multi_importer.loaders = [ZipLoader(p) for p in pkgs]
File "/home/cfrederickson/bin/sublime_text_3/sublime_plugin.py", line 466, in <listcomp>
multi_importer.loaders = [ZipLoader(p) for p in pkgs]
File "/home/cfrederickson/bin/sublime_text_3/sublime_plugin.py", line 416, in __init__
z = zipfile.ZipFile(path, 'r')
File "X/zipfile.py", line 897, in __init__
FileNotFoundError: [Errno 2] No such file or directory: '/home/cfrederickson/.config/sublime-text-3/Installed Packages/SublimeSBT.sublime-package'
reloading Packages/User/Package Control.sublime-settings
reloading Packages/User/Preferences.sublime-settings
found 4 files for base name Default.sublime-keymap
found 3 files for base name Main.sublime-menu
reloading plugin SublimeSBT.errormarker
reloading plugin SublimeSBT.errorreport
reloading plugin SublimeSBT.errorreporter
reloading plugin SublimeSBT.errorview
reloading plugin SublimeSBT.highlighter
reloading plugin SublimeSBT.outputmon
reloading plugin SublimeSBT.project
reloading plugin SublimeSBT.sbterror
reloading plugin SublimeSBT.sbtrunner
reloading plugin SublimeSBT.sbtsettings
reloading plugin SublimeSBT.sbtview
reloading plugin SublimeSBT.sublimesbt
reloading plugin SublimeSBT.util
Not yet implemented!
Not yet implemented!
Not yet implemented!
Not yet implemented!
In addition to fixing this could you include instructions of how to install from github in your README?
If I do Tools | Command Palette... | SBT: Start Console, SBT is started and enters the REPL. The "scala>" prompt comes up, and I can type characters that are echoed, but there RETURN keys does nothing, there is no result returned from the REPL. The same thing works OK on Linux.
It would be nice if (a) SublimeSBT remembered previously entered commands and (b) let the user navigate that history using up and down arrows.
At the moment, terminal codes are filtered out by _strip_terminal_codes in outputmon.py.
It would be great if there was a setting to turn that off.
With the right syntax selected, I think sublime text can actually make sense of these to color the output. See the plugin sublimeANSI or the plugin ANSIescape.
This would probably solve #33
Is it possible to make the output panel sticky (i.e. always visible)? Whenever I press ESC, it hides and reappears on new output.
it would be useful to have a dict of commands:
{
"run": "run",
"continuous run": "~run",
"test": "test",
"continuous test": "~test",
"custom task": "..."
}
TypeError: environment can only contain strings
Title pretty much says all.
Seems to be handled by ST
Would be cool to be able to jump between errors. You are already able to show list of errors and jump to selected, but for me it would be much more effective just to jump in cycle between them with a hotkey.
Next step: as you already have error messages parsed, you could show in the panel a specific message for error you just jumped to. So that you don't need to see all compiler's output, just jump to a error, read it's message in panel, fix, recompile or jump to the next, read it's message, fix and so on.
Hi
It used to work, but as my codebase grew (multi project) SBT Continuous only compiles one time.
Not sure what the difference is. I've had some UTF-8 file problems but I added JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8.
Mac OS X and Sublime Text 2. Please ask for details and I'll try to provide them, not sure what you need. In the normal console outside of ST2 it compiles fine with ~compile.
SublimeSBT will try to run play rather than sbt for a freshly cloned spray/akka activator template.
The output monitoring and error tracking assumes errors always come from files in the project. Tests that cause exceptions to be thrown from library files (e.g. None.get throws an exception from Option.scala) crash the output monitor.
Once the SBT panel is open, I can't find any way to get rid of it again, short of restarting Sublime.
Currently, only the logging level gets color (e.g. [info] is yellow, [success] is green) but other parts of sbt log messages that are colored by sbt in the console, are not colored in the sublime sbt pane, at least not in Sublime 3. Would be very helpful to retain the full sbt coloring to further enhance orientation.
I'm guessing this is the same as wuub/SublimeREPL#88. I'm on Windows 7 32-bit ST2.
I am very like this plugin, but when i run sbt and then kill it in st2, sbt output display finished, but the java process have not terminated in win7 taskmanager.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.