Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .python-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.3
3.8
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Helium package for Sublime Text 3
Helium package for Sublime Text
===

Helium is a package for Sublime Text 3, which provides in-editor code execution and autocomplete in interaction with Jupyter kernels.
The concept of an editor extension communicating Jupyter kernels is inspired by @nteract's splendid Atom package [Hydrogen](https://github.com/nteract/Hydrogen). I want something like it in Sublime Text 3, too.
Helium is a package for Sublime Text, which provides in-editor code execution and autocomplete in interaction with Jupyter kernels.
The concept of an editor extension communicating Jupyter kernels is inspired by @nteract's splendid Atom package [Hydrogen](https://github.com/nteract/Hydrogen). I want something like it in Sublime Text, too.

Any feedback is highly welcome. I hope this package will help your life with ST3!

Expand Down
28 changes: 25 additions & 3 deletions dependencies.json
Original file line number Diff line number Diff line change
@@ -1,30 +1,52 @@
{
"windows": {
"*": [
"<4000": [
"dateutil",
"enum",
"python-six",
"pyzmq"
],
">=4000": [
"dateutil",
"python-six",
"pyzmq",
"tornado"
]
},
"osx": {
"*": [
"<4000": [
"dateutil",
"enum",
"pexpect",
"ptyprocess",
"python-six",
"pyzmq"
],
">=4000": [
"dateutil",
"pexpect",
"ptyprocess",
"python-six",
"pyzmq",
"tornado"
]
},
"linux": {
"*": [
"<4000": [
"dateutil",
"enum",
"pexpect",
"ptyprocess",
"python-six",
"pyzmq"
],
">=4000": [
"dateutil",
"pexpect",
"ptyprocess",
"python-six",
"pyzmq",
"tornado"
]
}
}
17 changes: 8 additions & 9 deletions helium.py
Original file line number Diff line number Diff line change
Expand Up @@ -842,15 +842,14 @@ def cb():
sublime.set_timeout_async(cb, 0)

def _get_parent_view(self) -> sublime.View:
for window in sublime.windows():
for view in window.views():
try:
kernel = ViewManager.get_kernel_for_view(view.buffer_id())
except KeyError:
continue

if kernel.get_view() == self.view:
return view
for view in sublime.active_window().views():
try:
kernel = ViewManager.get_kernel_for_view(view.buffer_id())
except KeyError:
continue

if kernel.get_view() == self.view:
return view
return None


Expand Down
2 changes: 1 addition & 1 deletion lib/client/jupyter_client/manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ def _kernel_name_changed(self, name, old, new):

@property
def kernel_spec(self):
if self._kernel_spec is None and self.kernel_name is not '':
if self._kernel_spec is None and self.kernel_name != '':
self._kernel_spec = self.kernel_spec_manager.get_kernel_spec(self.kernel_name)
return self._kernel_spec

Expand Down
8 changes: 4 additions & 4 deletions lib/client/traitlets/config/loader.py
Original file line number Diff line number Diff line change
Expand Up @@ -542,7 +542,7 @@ def _load_flag(self, cfg):
# rejects: --anything=anything
# --two.word

flag_pattern = re.compile(r'\-\-?\w+[\-\w]*$')
flag_pattern = re.compile(r'\-\-?\w[\-\w]*$')

class KeyValueConfigLoader(CommandLineConfigLoader):
"""A config loader that loads key value pairs from the command line.
Expand Down Expand Up @@ -669,7 +669,7 @@ def load_config(self, argv=None, aliases=None, flags=None):

elif flag_pattern.match(raw):
if item in flags:
cfg,help = flags[item]
cfg,_ = flags[item]
self._load_flag(cfg)
else:
raise ArgumentError("Unrecognized flag: '%s'"%raw)
Expand Down Expand Up @@ -792,7 +792,7 @@ def _add_arguments(self, aliases=None, flags=None):
nargs = '?'
else:
nargs = None
if len(key) is 1:
if len(key) == 1:
paa('-'+key, '--'+key, type=text_type, dest=value, nargs=nargs)
else:
paa('--'+key, type=text_type, dest=value, nargs=nargs)
Expand All @@ -801,7 +801,7 @@ def _add_arguments(self, aliases=None, flags=None):
#
self.alias_flags[self.aliases[key]] = value
continue
if len(key) is 1:
if len(key) == 1:
paa('-'+key, '--'+key, action='append_const', dest='_flags', const=value)
else:
paa('--'+key, action='append_const', dest='_flags', const=value)
Expand Down
12 changes: 8 additions & 4 deletions lib/kernel.py
Original file line number Diff line number Diff line change
Expand Up @@ -320,20 +320,21 @@ def del_connection_name(self):
@property
def view_name(self):
"""Return name of output view."""
return "*Helium Output* {repr}".format(repr=self.repr)
return "Helium: {repr}".format(repr=self.repr)

@property
def repr(self):
"""Return string representation of the connection."""
shortened_kernel_id = str(self.kernel_id)[:6]
if self.connection_name:
return "{connection_name} ([{lang}] {kernel_id})".format(
connection_name=self.connection_name,
lang=self.lang,
kernel_id=self.kernel_id,
kernel_id=shortened_kernel_id,
)
else:
return "[{lang}] {kernel_id}".format(
lang=self.lang, kernel_id=self.kernel_id
lang=self.lang, kernel_id=shortened_kernel_id
)

@property
Expand All @@ -350,7 +351,8 @@ def activate_view(self):
current_view = sublime.active_window().active_view()
sublime.active_window().focus_view(view)
view.set_scratch(True) # avoids prompting to save
view.settings().set("word_wrap", "false")
view.settings().set("gutter", False)
view.settings().set("line_numbers", False)
sublime.active_window().focus_view(current_view)

def _output_input_code(self, code, execution_count):
Expand Down Expand Up @@ -578,6 +580,8 @@ def get_view(self):
view = window.new_file()
view.set_name(view_name)
view.settings().set("syntax", "Packages/Helium/Helium.sublime-syntax")
view.settings().set("gutter", False)
view.settings().set("line_numbers", False)
num_group = window.num_groups()
if num_group != 1:
if active_group + 1 < num_group:
Expand Down