[RSS]

Python support in NetBeans

Full-blown Python support is being developed for NetBeans over at https://nbpython.dev.java.net/. You can get bits there, or (for the latest, but completely untested bits) from our continuous build: http://deadlock.netbeans.org/hudson/job/python/.

Features

Code Folding

Classes, methods, functions, and triple quoted strings can be folded to conserve screen real estate and reduce clutter.

Unfolded code:

unfolded-code.png

Folded code:

folded-code.png

Semantic highlighting

Syntax highlighting reflects the semantics of the program: local and global variables are colored appropriately (and differently)

semantic-highlighting.png

Instant Rename

You can click on the name of a variable and synchronously rename all occurances of it. This screenshot captures the screen in the middle of an instant rename operation. The variable being renamed is shown in red.

instant-rename.png

Mark Occurrences

Placing the caret on a variable shows other uses of the variable. Placing the caret on a function or method call shows other calls to the function or method.

mark-occurrences.png

Code completion

Code completion is available for local function and variable names as well as Python keywords.

code-completion.png

Smart Indent, Outdent, and Pair matching

Pressing the return key will indent or outdent in a smart fashion. Matching for (), , , and "" is supported.

pair-matching.png

Platform Manager

The platform manager lets you specify which Python runtime (CPython or Jython) you wish to use. You can control which CPython is used, as well as specifying values for command line arguments. It is also possible to set the PYTHONPATH variable to set the Python load path.

platform-manager.png

Debugger

The debugger is derieved from Jean-Yves Mengant's jpydbg debugger.

debugger-local-variables.png

debugger-command-prompt.png

Planning

  • Milestone M5 (Jul 21)
    • Code folding for methods, classes and string blocks (e.g. documentation) (Tor Norbye) (DONE) (EA)
    • Semantic highlighting (highlights method definitions and parameter and usages of parameters) (Tor Norbye) (DONE) (EA)
    • Instant Rename for local variables/parameters (Tor Norbye) (DONE) (EA)
    • Mark Occurrences for local variables/parameters (Tor Norbye) (DONE) (EA)
    • Code completion on local variables and keywords (Tor Norbye) (DONE) (EA)
    • Keystroke handler (smart indent when you press return, and smart outdent, pair matching for quotes, parens, brackets and braces) (Tor Norbye) (DONE) (EA)
    • Platform Manager Platform Info tool(Allan Davis)(DONE) (EA)
    • Project Known File Types(Allan Davis)(DONE) (EA)
    • Python Platform Manager(Allan Davis)(DONE) (EA)
  • Milestone M6 (Aug 4)
    • Indexing (Tor Norbye) (EA)
    • Platform Manager Integration to Project(Thomas Zezula and Allan Davis)(DONE) (EA)
    • Project Actions(Thomas Zezula and Allan Davis)(DONE) (EA)
    • Create a new Django project (Ravi)
    • Create a new Django application wizard(Vasant)
    • Support Logical view of Django application(Ravi)
    • Create a new TurboGears project(Viraj)
    • Create a new TurboGears application wizard(Viraj)
    • Support Logical view of TurboGears application(Nisha)
    • Code Templates for basic statements and built-in functions(Manuel Tijerino)
    • Python Unit Test templets(Allan Davis) (EA)
  • Milestone M7 (Aug 18)
    • Integration with project system (Tor Norbye) (EA)
    • Create Python project from existing code(Thomas Zezula and Allan Davis) (EA)
    • Platform AutoDetect(Allan Davis) (EA)
    • Python Debugger(Allan Davis) (EA)
      • Debugger Session
      • Debugger Actions
      • Debugger views
    • Manage configuration for TurboGear (Viraj Pateliya)
      • Dev.cfg
      • sample-prod.cfg
      • Controller.py
    • Support deployment for TurboGear (Nisha Bhatia)
      • Setup.py
      • <projectname>.py
      • <packagename>/release.py
      • <projectname>.engg-info
    • Run Django application in NetBeans (Ravi Hingarajiya)
    • Run Django-admin.py (Vasant Patel)
    • Run manage.py in all of its forms - Django shell (specialized behavior) (Ravi Hingarajiya)
    • Managing and editing urls.py (Vasant Patel)
    • Generation wizards for major Django artifacts (Ravi Hingarajiya)
    • Error pages (Vasant Patel)
    • flatpages (Ravi Hingarajiya)
  • Milestone M8 (Sep 1)
    • Basic Type analysis for smarter code completion/go to declaration (Tor Norbye) (EA)
    • Python Project Customizers(Thomas Zezula and Allan Davis) (EA)
    • TurboGears Administration Tool (Viraj Pateliya)
      • Tg-admin
    • Custom error reporting for TurboGear(Nisha Bhatia)
      • Dispatch error
      • Exception handler
      • CherryPy filter
    • Activating administration interfaces for Django (Ravi Hingarajiya)
    • Customizing administration interfaces for Django (Ravi Hingarajiya)
    • highlighting for Django (Vasant Patel)
    • variable and tag completion for Django (Vasant Patel)
  • Milestone M9 (Sep 15)
    • Basic Quick Fixes (Tor Norbye) (EA)
    • Basic Refactoring (Find Usages and Rename) (Tor Norbye) (EA)
    • Template engine plugin for TurboGear (Viraj Pateliya)
      • Kid template
      • Genshi template
    • Highlighting for TurboGear (Nisha Bhatia)
    • Variable and tag completion for TurboGear (Nisha Bhatia)
    • Template inheritance for Django (Ravi Hingarajiya)
    • Custom template tags using writing (Vasant Patel)
  • Milestone M10 (Sep 29)
    • Embedded Language Support (Tor Norbye)
    • Rendering of kid templates for TurboGear (Viraj Pateliya)
    • Preview of kid templates in editor for TurboGear (Viraj Pateliya)
    • Editing of form using html palette window in design view for TurboGear (Nisha Bhatia)
    • Editing the forms classes for Django (Ravi Hingarajiya)
    • Generating/displaying html previews of the forms classes for Django (Ravi Hingarajiya)
    • Editing associated views and templates for Django (Vasant Patel)
  • Milestone M11 (Oct 13)
    • Manage model.py for data model for SQL/ORM for TurboGear ( Viraj Pateliya)
    • Manage tg-admin SQL create command for generating databases from the model classes for TurboGear (Nisha Bhatia)
    • Manage model.py for data model for SQL/ORM for Django(Ravi Hingarajiya)
    • Manage tg-admin SQL create command for generating databases from the model classes for Django (Vasant Patel)
    • Manage model.py for data model for SQL/ORM for Django (Vasant Patel)
  • Milestone M12 (Oct 27)
    • Database support for MySql, Sqllite, PostgreSql, and Oracle for TurboGear (Viraj Pateliya, Nisha Bhatia)
    • Widget support for TurboGear (Viraj Pateliya, Nisha Bhatia)
    • Supports Google App Engine for Django (Ravi Hingarajiya)
    • Supports JQuery in template for Django (Vasant Patel)
  • Milestone M13 (Nov 10)
    • Widget support for TurboGear (Viraj Pateliya, Nisha Bhatia)
    • Agile testing support
      • testutils (Viraj Pateliya)
      • nosetests (Nisha Bhatia)
    • Unit testing support for Django
      • docttest (Ravi Hingarajiya)
      • unittest (Vasant Patel)
    • Database support for MySql, Sqllite, PostPreSql, and Oracle for Django (Ravi Hingarajiya, Vasant Patel)
  • Milestone M14 (Nov 24)
    • Testing for TurboGear (Viraj Pateliya)
    • Wrap-up for TurboGear (Viraj Pateliya)
    • Documentation for TurboGear (Nisha Bhatia)
    • Sample application for Turbo Gears application in NetBeans (Nisha Bhatia)
    • Testing for Django (Ravi Hingarajiya)
    • Wrap-up for Django (Ravi Hingarajiya)
    • Documentation for Django (Vasant Patel)
    • Sample application for Django application in NetBeans (Vasant Patel)

Attachments

code-completion.png Info on code-completion.png 47957 bytes
debugger-command-prompt.png Info on debugger-command-prompt.png 28822 bytes
debugger-local-variables.png Info on debugger-local-variables.png 73312 bytes
external.zip Info on external.zip 2433949 bytes
folded-code.png Info on folded-code.png 36449 bytes
instant-rename.png Info on instant-rename.png 76927 bytes
jython-antlr.jar Info on jython-antlr.jar 2539587 bytes
mark-occurrences.png Info on mark-occurrences.png 77319 bytes
pair-matching.png Info on pair-matching.png 6895 bytes
platform-manager.png Info on platform-manager.png 39072 bytes
semantic-highlighting.png Info on semantic-highlighting.png 23725 bytes
unfolded-code.png Info on unfolded-code.png 44312 bytes