Differences between revisions 9 and 11 (spanning 2 versions)
Revision 9 as of 2009-01-18 15:04:17
Size: 3823
Editor: schilly
Comment:
Revision 11 as of 2009-01-18 15:14:06
Size: 4182
Editor: schilly
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
Netbeans is a GUI development environment. The following instructions explain how to work on Sage, for Linux (Ubuntu 8.10, but should work everywhere). It helps with coding, build and run still on command-line. Netbeans is a GUI development environment. The following instructions explain how to work on Sage, for Linux (Ubuntu 8.10, but should work everywhere). It helps with coding, build and run still on command-line. Sometimes it just guesses things, but most of the time it is pretty smart and gives help for navigating around, completion of commands and more.
Line 6: Line 6:
== Benefits
 * syntax highlighting and assistance, code completion, corrects formatting (the last one is probably dangerous, because it changes codelines throughout the file and we would need a common definition to avoid diffs just for indents and newlines)
== Benefits ==
 * syntax highlighting and assistance
 * code completion (CTRL-SPACE)
 * corrects formatting (his probably dangerous
, because it changes code-lines throughout the file and we would need a common definition to avoid diffs just for indents and newlines)
Line 9: Line 11:
 * press "CTRL" and click on the class or method name, and you it will jump to it's definition, perhaps opening the apropriate python file.  * press "CTRL" and click on the class or method name, and you it will jump to it's definition, perhaps opening the appropriate python file.
Line 11: Line 13:
 * lists all classes and methods in current file in a tree for easy navigation: menu: Window>Navigating>Navigator
Line 12: Line 15:
 * tasks: netbeans searches the source code for tokens that indicate open tasks ("TODO", etc.), in menu: Window > Tasks  * tasks: netbeans searches the source code for tokens that indicate open tasks and lists them ("TODO", etc.), in menu: Window > Tasks
 * mercurial support
 * (trac integration/interaction would possible)
Line 55: Line 60:
 * pyx/pxd are recognized as normal textfiles  * pyx/pxd are recognized as normal text-files

Developing Python/Sage with Netbeans

Netbeans is a GUI development environment. The following instructions explain how to work on Sage, for Linux (Ubuntu 8.10, but should work everywhere). It helps with coding, build and run still on command-line. Sometimes it just guesses things, but most of the time it is pretty smart and gives help for navigating around, completion of commands and more.

Benefits

  • syntax highlighting and assistance
  • code completion (CTRL-SPACE)
  • corrects formatting (his probably dangerous, because it changes code-lines throughout the file and we would need a common definition to avoid diffs just for indents and newlines)
  • indexes python and all libraries, i.e. you get a list of all available classes, functions and methods, completion of partial identifiers and they also show you the help for each command.
  • press "CTRL" and click on the class or method name, and you it will jump to it's definition, perhaps opening the appropriate python file.
  • finds the usage of a method or class: right-click on it and "find usage" or CTRL-F7
  • lists all classes and methods in current file in a tree for easy navigation: menu: Window>Navigating>Navigator

  • refactoring: i.e. there is limited support (you have to go through all automatic changes in the preview) for renaming variables, classes, etc.
  • tasks: netbeans searches the source code for tokens that indicate open tasks and lists them ("TODO", etc.), in menu: Window > Tasks

  • mercurial support
  • (trac integration/interaction would possible)

Requirements

  • Netbeans 6.5

  • Python
    • Netbeans menu: Tools > Plugins, search for "Python", install

Setup

Definitions

  • SAGE_ROOT = root dir of Sage
  • NETBEANS_ROOT = root dir of netbeans

Instructions

  1. cd $SAGE_ROOT
  2. ./sage -sh
    • note, that $HOME still points to your home dir
  3. $NETBEANS_ROOT/bin/netbeans
  4. File > New Project - Python > with existing sources

    • Name: "SageNetbeans" or what you like, save it in your $HOME dir

    • Python platform: Manage - "New..." - select Python executable "$SAGE_ROOT/bin/python", name it "Python 2.5.2 Sage"
    • select "Python 2.5.2 Sage" on the left, on the right in tab "Python Path" you can see the paths are in $SAGE_ROOT/local/lib/... (maybe click "auto detect" ?)
  5. next > source root folder: "$SAGE_ROOT/devel/sage/sage" - finish!

Note

  • After first startup it has to scan and index all the Python stuff (progress indicator bottom right). This could take some minutes, so don't wonder why nothing works...
  • Personally, I'm not happy with the default GTK theme in ubuntu linux, therefore I have to change the look&feel settings: edit NETBEANS_ROOT/etc/netbeans.conf - in the "netbeans_default_options" variable, change add/change parameter "--laf javax.swing.plaf.metal.MetalLookAndFeel" to get the java specific metal look&feel (or what you want).

Mercurial

Netbeans supports Merucrial out of the box. Right-click on files in "File" window (Window>Files), see local diffs in a special diff window, commit changes, undo local changes. The Netbeans editor itself also supports nonlinear undos, right click on the left side of a highlighted change, see the diff, change only this part as in the local repository.

Trac Integration

It is theoretically possible to integrate Netbeans with Trac using Cube°n. Maybe someone wants to look deeper into this ...

Open Issues

  • for some reason i don't know all files are marked as "ignored" by mercurial.
  • you have to build and start Sage still by hand ("./sage -br" on the command line), but it would be possible to select a python script to run in the project properties > run...

  • pyx/pxd are recognized as normal text-files

Netbeans (last edited 2010-11-29 08:43:35 by pang)