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)