sublime_text icon indicating copy to clipboard operation
sublime_text copied to clipboard

`View.syntax()` returns None after calling `View.assign_syntax()`

Open deathaxe opened this issue 2 months ago • 1 comments

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

  1. Start ST in SAFE MODE
  2. Open any file
  3. run view.Syntax()
  4. run view.assign_syntax("<any valid syntax file>")
  5. 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


deathaxe avatar Nov 19 '25 08:11 deathaxe

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.

jfcherng avatar Nov 19 '25 17:11 jfcherng