Dev Build 3163 is out now at https://www.sublimetext.com/3dev
This fixes a Windows performance regression in 3162, and has some character spacing tweaks for both MacOS and Windows. It also runs on FreeBSD again (via the Linux emulation layer).
Dev Build 3163 is out now at https://www.sublimetext.com/3dev
This fixes a Windows performance regression in 3162, and has some character spacing tweaks for both MacOS and Windows. It also runs on FreeBSD again (via the Linux emulation layer).
The Windows scrolling performance issue seems to be fixed now. Thanks!
However maybe because of the change to text rendering, now the text is “flashing” when scrolling - it is most visible on the line numbers column and with a light colour scheme.
3162 & 3163 both suffer from this, 3161 is ok.
Windows 10 x64, light theme & scheme, no changes to default text rendering settings in the OS.
A few questions:
font_options
in Sublime Text?I used to use the Win 10 setting for “Bypassing the DPI behaviour of the application” (not sure how it is called in english version of Windows) in the compatibility tab, but since a few builds ago (3158 afaik), I turned that off, because ST became per-display DPI aware.
3163 is having trouble importing all files in a plugin. This is on OSX (all I’ve tested so far). Certain files don’t get imported while others do. Did something change in how you guys import modules? This happens to a lot of my plugins, but here is one example:
reloading plugin BracketHighlighter.bh_core
Traceback (most recent call last):
File "/Applications/Sublime Text.app/Contents/MacOS/sublime_plugin.py", line 116, in reload_plugin
m = importlib.import_module(modulename)
File "./python3.3/importlib/__init__.py", line 90, in import_module
File "<frozen importlib._bootstrap>", line 1584, in _gcd_import
File "<frozen importlib._bootstrap>", line 1565, in _find_and_load
File "<frozen importlib._bootstrap>", line 1532, in _find_and_load_unlocked
File "/Applications/Sublime Text.app/Contents/MacOS/sublime_plugin.py", line 1182, in load_module
exec(compile(source, source_path, 'exec'), mod.__dict__)
File "/Users/facelessuser/Library/Application Support/Sublime Text 3/Packages/BracketHighlighter/bh_core.py", line 17, in <module>
import BracketHighlighter.bh_popup as bh_popup
ImportError: No module named 'BracketHighlighter.bh_popup'
reloading plugin BracketHighlighter.bh_logging
reloading plugin BracketHighlighter.bh_plugin
reloading plugin BracketHighlighter.bh_regions
reloading plugin BracketHighlighter.bh_remove
reloading plugin BracketHighlighter.bh_rules
reloading plugin BracketHighlighter.bh_search
reloading plugin BracketHighlighter.bh_swapping
reloading plugin BracketHighlighter.bh_wrapping
Looks like all imports of modules which are located within an overloading package fail.
Example:
This issue exists with all overloading packages, no matter whether they overload a default package or one located within the Installed Packages
path.
Not every overloaded file fails, but I do have a number of packages that are installed in Installed Packages
, and I develop on them, unpacked, in Packages
. So it kind of sounds like some override issues.
I may hold off on upgrading to this to see if we get some fixes in regards to package importing.
I was a big fan of the character spacing in the previous version. Is there an option we can use to change it ourselves?
Seems like the ZipLoader::has()
method in sublime_plugin.py
is the culprit. Since 3161 the first evaluation (commented out here) always returns ignoring all the following code paths.
By reverting it, the import error disapears.
class ZipLoader(object):
def __init__(self, zippath):
self.zippath = zippath
self.name = os.path.splitext(os.path.basename(zippath))[0]
self._scan_zip()
def has(self, fullname):
# name, key = fullname.split('.', 1)
# return name == self.name and key in self.contents
# <3161
key = '.'.join(fullname.split('.')[1:])
if key in self.contents:
return True
# <3161
override_file = os.path.join(override_path, os.sep.join(fullname.split('.')) + '.py')
if os.path.isfile(override_file):
return True
override_package = os.path.join(override_path, os.sep.join(fullname.split('.')))
if os.path.isdir(override_package):
return True
return False
Emoji in text files no longer show up for me in 3163. Using macOS Sierra 10.12.6 (16G29).
You can get the character spacing of recent dev builds on macOS by turning on the no_round font option. Things are more complex than that on Windows though.
I’m seeing a bug with character widths in 3163, at least with braces:
In both cases, there are exactly 80 brace characters, all selected. The rendered characters don’t seem to have changed, while the ruler and selection have changed and no longer line up.
Update: "font_options": ["no_round"]
suffices as a workaround for now
I actually had some time to confirm what @deathaxe was saying. Overrides is kinda broken. So I did have an older .sublime-package
file for many of the failing packages, but then I had the unpacked overrides which no longer override properly. That is why certain files were failing as they did not exist in the older zipped packages which were normally overridden by the unpacked packages.
I’ve confirmed the overrides issue and got a fix in that will resolve a couple of other related issues
Whops, that was on my part. I was running the patch locally for quite a while and didn’t notice any problems though. Probably because I didn’t have nested overrides (as top-level ones were fine).
FWIW, I prefer the “old style” (which was re-implemented in this build).
I posted about the issue here, macOS font rendering issue.
The “old style” appears to be more consistent with other macOS apps (e.g. vi in Terminal with same font options).