Workflow for developing add-on/script
Blender text-editor is not good for coding, but using external one is cumbersome because the code still needs to be debugged regularly in blender and the blender console and outliner dataview is also very usefull. Switching back and forth would be an annoying experience for me even if the codes (external, internal) could be synced (which they can be with scene_update handlers..).



There was couple years ago an attempt to improve the Text-editor (using Scintilla that many external text editors use), but it seems dead.



So some time ago I wrote this addon to improve some Text editor functionality so I don't have to go the external path. Nowadays I would code some of it's parts differently and better (especially the multithreaded minimap updating) so any feedback is very welcomed. Here are the features:


Start and End with right-click in any Text-editor window (it also ends with F8 because when scripting an addon you need to reload with F8 and that is not possible because this addon is a modal operator. So you need F8 + F8 + Right-click>Start_again )


When started it adjusts the text-editor to the addon preferences, so you don't have to set line_numbers, syntax_highlight, text_margin etc. every time you open new text-editor window (this is frustating blender behavior, these settings should be global..)


It follows blender theme colors. The default ones are bad, so here I give you a good ones so its usable:


It adds a scrollable and clickable code minimap with syntax highlighting, which fades out when window is too small. It is done in another thread and has lazy updating to not lag the text-editor (python is slow for this). It can be disabled in preferences with just setting huge Hide Panel threshold:


It adds markers to visualize indentation, and it displays the scope of defs and classes (you can see it above in the gif). The scopes could be minimized but this didn't make it into this release because when blender crashes you would loose the hidden code parts (the lines were removed from text and stored in custom property). You can see the toggle icons when you hover over line numbers.
Autocompletes brackets and "",'':


Use Alt+C for magic:


put things in lists:


evaluate expressions (it knows pi, e, phi(golden ratio) and g(grav accel)):


stringify words when cursor just after the word:



Correct Home and Shift+Home behavior. Will move to first letter of line or to the previous indent. Alt+Home now moves to the line beginning:


Make comments with Alt+D. (Remove with Ctrl+Shift+D - this one is not new):


With multiple text-files it displays tabs to quickly switch between (blender has tabs but does not use them where it should..)




All this was good enough for me not to use external editor. Multiple variables highlighting and multi-editing (like Sublime has) was planned but abandoned. Maybe if enough people will be interested I could further improve this. But I don't see Blender addon python api strong enough to do this properly, this should be done in Blenders code for performance (like that scintilla patch).



There is also this paid addon that does blender api autocomplete and is very nice.



In your workflow I don't see much room for optimization, except for auto-reloading your script with bpy.app.handlers.scene_update_pre handler. You should be able also to return to the start state with ctrl-z so you don't have to restart blender but that depends on what you are doing if that would work.