sublime_text
sublime_text copied to clipboard
`View.syntax()` returns None after calling `View.assign_syntax()`
Description of the bug
View.syntax() returns None after programatically assigning a syntax definition by calling View.assign_syntax(), if either
- an invalid syntax resource path (e.g.: Packages/AnyStupid/Nonsense.sublime-syntax)
- or a (valid) syntax filename without path is given (e.g.: C.sublime-syntax)
Steps to reproduce
- Start ST in SAFE MODE
- Open any file
- run
view.Syntax() - run
view.assign_syntax("<any valid syntax file>") - run
view.Syntax()
Expected behavior
In step 5, view.syntax() should always return a valid Syntax object of the actual syntax being used, which must be any syntax or Plain text, regardless whether assign_syntax() failed assigning a new syntax or whether it assigned a new one based on a filename instead of a resource path, successfully.
Actual behavior
In step 5, view.syntax() returns None.
Sublime Text build number
<= 4202
Operating system & version
All
(Linux) Desktop environment and/or window manager
No response
Additional information
>>> view.assign_syntax("Packages/LaTeXTools/LaTeXTools Log.sublime-syntax")
>>> view.syntax()
Syntax('Packages/LaTeXTools/LaTeXTools Log.sublime-syntax', 'LaTeXTools Log', False, 'text.log.latex')
>>> view.assign_syntax("LaTeXTools Log.sublime-syntax")
>>> view.syntax()
>>>
OpenGL context information
Similar issue: https://github.com/sublimehq/sublime_text/issues/4449
view.syntax() gives None and wrong syntax name in the status bar but syntax is set.