This is a cross application, cross platform and open source Python editor, which can be run as a standalone application or embedded in another application. The main purpose for integration - the ability to script in Python.
- Preserve and load of tabs and code in them
 - Interactive execute of the selected code by pressing Ctrl + Enter
 - Adjust the color theme of the code editor
 - Code completion (module jedi)
 - Context completion for different functions like existing nodes and path in scene
 
- Houdini 13-16 (using hqt.py module)
 - Nuke 8,9
 - Maya 2014-2016
 - 3DsMax 2014-2016
 
If necessary, you can extend this to make your own integration module. The main pre condition - Should be used Python2.7.
- Code completion for all modules and return types (remastered hou library)
 - Context completion for functions CreateNode, CreateInputNode and CreateOutputNode with existing houdini node types
 - Context completion string for absolute houdini internal path and node parameters. To use this complete start string with "/ or '/
 - Drag&Drop Houdini nodes and parameters fills in their path. Use Alt modifier to wrap node or parameter as code like in Houdini Python Shell.
 - Reading and writing to PythonSOP code and asset sections
 
- Code completion for all modules and return types (remastered nuke library)
 - Context completion for createNode with existing Nuke node types
 - Context completion for function toNode with existing nodes in current script
 - Converting selected nodes to code with function nuke.toNode
 - Searching and converting nodes to code from clipboard
 - Reading and writing from PythonKnobs code
 
- Save code to shelf and accept dropped shelf button code, like default Maya script editor
 - Drag&Drop Maya nodes fills in their names. Use Alt modifier to wrap node as code. Import PyMEL before doing this!
 - Context completion for function PyNode with existing nodes in current scene
 - Context completion for function pm.createNode and cmds.createNode with existing Maya node types
 
- Works for now...
 
- install Python 2.7
 - install PySide
 - use run.cmd (Windows) or run.sh (Linux) to start
 
- download and install hqt.py
 - install PySide to default Python interpreter
 - create new tool on shelf
 
import sys
paths = ['path/to/folder/with/MultiScriptEditor_module','path/to/default/python27/lib/with/PySide']
# example ['c:/houdini/python/lib', 'c:/python27/Lib/site-packages']
for path in paths:
    if not path in sys.path:
        sys.path.append(path)
import pw_multiScriptEditor
pw_multiScriptEditor.showHoudini(ontop=1)- download and install hqt.py
 - create new tool on shelf
 
import sys
path = 'path/to/folder/with/MultiScriptEditor_module'
# example c:/houdini/python/lib
if not path in sys.path:
    sys.path.append(path)
import pw_multiScriptEditor
pw_multiScriptEditor.showHoudini(name='Multi Script Editor',replacePyPanel=1, hideTitleMenu=0)Also you can use .pypanel file without hqt module
/managers/houdini/pw_MultiScriptEditor.pypanel
- Create shelf button with code
 
import sys
path = 'path/to/folder/with/MultiScriptEditor_module'
# example c:/maya/python/lib
if not path in sys.path:
    sys.path.append(path)
import pw_multiScriptEditor
pw_multiScriptEditor.showMaya(dock=True)- Add next code to menu.py
 
import nuke
menubar = nuke.menu("Nuke")
toolMenu = menubar.addMenu('&Tools')
path = 'path/to/folder/with/MultiScriptEditor_module'
# example c:/nuke/python/lib
if not path in sys.path:
    sys.path.append(path)
import pw_multiScriptEditor
# add to menu
toolMenu.addCommand("Multi Script Editor", "pw_multiScriptEditor.showNuke()")
# create new pane
pw_multiScriptEditor.showNuke(panel=True)- Create a menu, toolbar, etc with the following maxscript:
 
python.executefile("path\\to\\pw_multiScriptEditor\\run_3dsmax.py")or
macroScript MultiScriptEpitor
	category:"scripts"
	toolTip:"MultiScriptEditor"
(
	python.Execute "import sys"
	python.Execute "sys.path.append('path/to/scripts/folder')"
	python.Execute "import pw_multiScriptEditor"
	python.Execute "reload(pw_multiScriptEditor)"
	python.Execute "pw_multiScriptEditor.show3DSMax()"
)
This project is licensed under the MIT License
