# Copyright (c) 2025 The Foundry Visionmongers Ltd. All Rights Reserved.
from .blinkscripteditor2_autoclosebrackets import *
from .blinkscripteditor2_autoindent import *
from .blinkscripteditor2_bases import *
from .blinkscripteditor2_bracehighlighter import *
from .blinkscripteditor2_erroraccordion import *
from .blinkscripteditor2_findreplace import *
from .blinkscripteditor2_tabcompletion import *
from .blinkscripteditor2_profiler import *
from .blinkscripteditor2_recompile import *
class BlinkscriptEditorController(
BraceHighlighterControllerMixin,
ProfilerControllerMixin,
TabCompletionControllerMixin,
FindReplaceControllerMixin,
AutoIndentControllerMixin,
AutoCloseBracketsControllerMixin,
ErrorAccordionControllerMixin,
BlinkscriptEditorControllerBase):
def setupConnections(self):
if self.view and self.model:
super().setupConnections()
class BlinkscriptEditorTextEditorWidget(
ProfilerTextEditorMixin,
TabCompletionTextEditorMixin,
FindReplaceTextEditorMixin,
AutoIndentTextEditorMixin,
BraceHighlighterTextEditorMixin,
AutoCloseBracketsTextEditorMixin,
ErrorAccordionTextEditorMixin,
RecompileTextEditorMixin,
BlinkscriptEditorTextEditorBase):
pass
class BlinkscriptEditorTextEditorViewMixin:
def createWidgets(self) -> None:
# The actual text editor.
self.editor = BlinkscriptEditorTextEditorWidget()
self.main_layout.addWidget(self.editor)
# Initialise the highlighter for the editor.
if self.highlighter:
self.initHighlighter()
super().createWidgets() # type: ignore[misc]
class BlinkscriptEditorModel(
ProfilerModelMixin,
BraceHighlighterModelMixin,
TabCompletionModelMixin,
ErrorAccordionModelMixin,
BlinkscriptEditorModelBase):
pass
class BlinkscriptEditorView(
TabCompletionViewMixin,
FindReplaceViewMixin,
BlinkscriptEditorTextEditorViewMixin,
ErrorAccordionViewMixin,
BlinkscriptEditorViewBase):
pass
[docs]class BlinkscriptEditorTab(
ErrorAccordionTabMixin,
RecompileTabMixin,
TabCompletionTabMixin,
BlinkscriptEditorBase):
def createModel(self, *args, **kwargs) -> BlinkscriptEditorModel:
return BlinkscriptEditorModel(*args, **kwargs)
def createView(self, *args, **kwargs) -> BlinkscriptEditorView:
return BlinkscriptEditorView(*args, **kwargs)
def createController(self, *args, **kwargs) -> BlinkscriptEditorController:
return BlinkscriptEditorController(*args, **kwargs)
# ----------- Particle Blinkscript Editor -----------
class ParticleBlinkscriptEditorController(FindReplaceControllerMixin,
AutoIndentControllerMixin,
AutoCloseBracketsControllerMixin,
BlinkscriptEditorControllerBase):
def setupConnections(self):
if self.view and self.model:
super().setupConnections()
class ParticleBlinkscriptEditorTextEditorWidget(FindReplaceTextEditorMixin,
AutoIndentTextEditorMixin,
BraceHighlighterTextEditorMixin,
AutoCloseBracketsTextEditorMixin,
BlinkscriptEditorTextEditorBase):
pass
class ParticleBlinkscriptEditorTextEditorViewMixin:
def createWidgets(self) -> None:
# The actual text editor.
self.editor = ParticleBlinkscriptEditorTextEditorWidget()
self.main_layout.addWidget(self.editor)
# Initialise the highlighter for the editor.
if self.highlighter:
self.initHighlighter()
super().createWidgets() # type: ignore[misc]
class ParticleBlinkscriptEditorModel(BlinkscriptEditorModelBase):
pass
class ParticleBlinkscriptEditorView(FindReplaceViewMixin,
ParticleBlinkscriptEditorTextEditorViewMixin,
BlinkscriptEditorViewBase):
pass
[docs]class ParticleBlinkscriptEditorTab(BlinkscriptEditorBase):
def createModel(self, *args, **kwargs) -> ParticleBlinkscriptEditorModel:
return ParticleBlinkscriptEditorModel(*args, **kwargs)
def createView(self, *args, **kwargs) -> ParticleBlinkscriptEditorView:
return ParticleBlinkscriptEditorView(*args, **kwargs)
def createController(self, *args, **kwargs) -> ParticleBlinkscriptEditorController:
return ParticleBlinkscriptEditorController(*args, **kwargs)