Source code for nukescripts.blinkscripteditor2.blinkscripteditor2

# 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)