Sublime Forum

Dev Build 3084

#21

john answered about that: there is no precedence, both are loaded.

[quote=“jps”]

Currently there’s one shipped .sublime-syntax file, in YAML/YAML.sublime-syntax. The old YAML.tmLanguage is still there, but I’ve added:

<key>hidden</key>
<true/>

to the top, so it won’t show up in the Syntax menu. Keeping it around has two advantages:

  • Any other tmLanguage files including YAML.tmLanguage will still work.
  • Any users updating with an already open YAML file will have things continue to work as expected (the syntax file to use is determined once when a file is opened, and won’t be recalculated until the file is closed and reopened again).[/quote]
0 Likes

#22

The match regex uses Ruby syntax. This is an interesting choice, as developing for Sublime uses so much Python and JSON. Do we really need to learn another REGEXP syntax?

What was the advantage of choosing Ruby syntax over Python or Perl or any of the others?

0 Likes

#23

That’s not the question. I know they are both loaded and usable, but which one is auto-selected for a view. Manually you can select either or. You cannot simultaneously highlight with both, so one must be picked when a view is loaded. I would assume Sublime would favor sublime-syntax, but I haven’t tested it yet. But a user could manually select either or.

0 Likes

#24

[quote=“bphunter1972”]The match regex uses Ruby syntax. This is an interesting choice, as developing for Sublime uses so much Python and JSON. Do we really need to learn another REGEXP syntax?

What was the advantage of choosing Ruby syntax over Python or Perl or any of the others?[/quote]

I suppose SublimeText uses the Oniguruma regex library here, which is used in Ruby as well as by TextMate, Atom, and several other editors.

0 Likes

#25

When foo.sublime-syntax and foo.tmLanguage both declare they support the same file extension, then the .sublime-syntax version will be used in preference.

0 Likes

#26

Jon, I am noticing some weird behavior with settings objects in 3084 (I don’t know if this issue existed before this revision, but I noticed recently).

Sometimes, settings objects will return None for get settings.get(“whatever”, “some_default”) on the first call, and if you call it again, you get the actual value in the settings file. I don’t think this happens in all cases, but I have one plugin where this is consistently reproducible for certain values. The only way I can circumvent the problem is to call get twice.

Please let me know if you need more info.

0 Likes

#27

@jps, there’s another reloading Network File (NFS) bug.
I am using build 3082. When I opened a network file , I do not edit it, and someone edited it at other computer afterward, it should be silently reloaded at my side (from my experience on Sublime Text 2), but the file do not reload, and when I do some changes and save it on my side, it overwrite the changes saved by others with no prompt.
I already set “always_prompt_for_file_reload”: false (same as Default) in my User Setting file

Till to this bug, I overwrote 3 times of others changes already. :cry:

0 Likes

#28

After digging a little more into the settings issue, I think I have characterized the behavior.

So, once the settings file gets in this weird state, the settings_id still looks good. But if you call has, it will return False even if the settings key is in the settings file. If you call get, even when you provide a default, you will get None.

So for some reason, has will tell you that there is no key, but if you provide a default to get, it will find the key with a value of None (as if it existed with a None value) and not apply the default. But once you call either has or get, the subsequent has or get will return the proper response regardless of the faulty response before.

In my case it is happening in this plugin github.com/facelessuser/SerializedDataConverter. I am not sure what this plugin is particularly doing to put the the settings file in a weird state, but it is very reproducible. I suspect it is an API bug.

0 Likes

#29

Seems there a regression in build 3084, I can use “StringEncode: URL Decode” (packagecontrol.io/packages/StringEncode) command in build 3082 to decode a url string, but after upgraded to 3084, it failed and show the following traceback at console:

Traceback (most recent call last): File "/Applications/Sublime Text.app/Contents/MacOS/sublime_plugin.py", line 556, in run_ return self.run(edit) File "string_encode in /Volumes/Data/MacSystem/Users/sing/Library/Application Support/Sublime Text 3/Installed Packages/StringEncode.sublime-package", line 33, in run File "string_encode in /Volumes/Data/MacSystem/Users/sing/Library/Application Support/Sublime Text 3/Installed Packages/StringEncode.sublime-package", line 165, in encode File "./urllib/parse.py", line 615, in unquote_plus TypeError: expected bytes, bytearray or buffer compatible object

0 Likes

#30

Well, if anyone else is having problems with settings objects, moving all my setting reads to the beginning of my commands seems to allow me to read the settings file okay again; no double gets required. It seems like something occurs to the settings object during the payload of the command, but subsequent command calls have no issue so some how it resolves itself. The problem seems to occur after the bulk of the plugins work and persists only until the plugin finishes or until a get of some kind is called twice.

I still have no idea what I could possibly be doing to affect the plugins API’s internal settings handler. I have only noticed it with SerializedDataConverter. Anyways, even though what is causing the issue is still not clear, I have at least found a working workaround. Hopefully this issue will be identified in Sublime and fixed. If I ever narrow down the issue to something specifically I am doing, I will pdate.

0 Likes

#31

I did notice weird settings interactions. Notably all/most settings being None immediately at load (in plugin_loaded), then my .add_on_change being triggered that I registered in plugin_loaded and the values being different then.

I also have a problem with settings being shadow-shared when a view is cloned, see github.com/SublimeTextIssues/Core/issues/731

0 Likes

#32

[quote=“FichteFoll”]I did notice weird settings interactions. Notably all/most settings being None immediately at load (in plugin_loaded), then my .add_on_change being triggered that I registered in plugin_loaded and the values being different then.

I also have a problem with settings being shadow-shared when a view is cloned, see github.com/SublimeTextIssues/Core/issues/731[/quote]

Glad I am not the only one. I kept thinking maybe there was something wrong somewhere in my plugin because no one else was having the same issue.

0 Likes

#33

There is an issue with hot exit and files on network drives (Windows): When I close Sublime with a file opened from a network drive and reopen it while the network drive is unavailable, the complete UI hangs (“no response from …”) for about 30 seconds.

0 Likes