Differences between revisions 27 and 154 (spanning 127 versions)
Revision 27 as of 2004-10-15 12:08:13
Size: 2346
Editor: limodou
Comment:
Revision 154 as of 2006-08-23 02:57:52
Size: 7503
Editor: limodou
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
A flexible general editor with mixins and plugins, based on wxPython. A flexible, general editor with mixins and plugins, which uses wxPython.
Line 5: Line 5:
## 调整了 wiki 的权限,你现在是管理员可以删除文件什么的了……总是忙乱忘记处理
-- limodou [[[DateTime]]]
[[TableOfContents]]
= UliPad Project(Old NewEdit) =
''First was FlyEdit based on Tcl/Tk, and later became NewEdit based on wxPython. And now it's UliPad.''
Line 6: Line 11:
-- limodou [[[DateTime(2004-08-15T21:24:42Z)]]]
[[TableOfContents]]
= NewEdit Project =
''First was FlyEdit based on Tcl/Tk, and later became NewEdit based on wxPython.''
UliPad, this name comes from Claudio Grondi, thanks you.
Line 11: Line 13:
You can check the Chinese Version of this wiki at NewEditCn.
Line 14: Line 15:
NewEdit uses Mixin and Plugin technique as its architecture. Most of class can be extended via mixin and plugins components, and finally become an integrity class at creating the instance. So NewEdit is very dynamic. You can write the new feature in new files, and hardly need to modify the existed code. And if you want to extend the existed class, you could write mixins and plugins, and this will be bound the target class that I call them "Slot Class". This techinique will make the changes centralized and easy managed. UliPad(NewEdit) uses Mixin and Plugin technique as its architecture. Most of its classes can be extended via mixin and plugin components, and finally become an integrity class at creating the instance. So UliPad(NewEdit) is very dynamic. You can write the new features in new files, and hardly need to modify the existing code. And if you want to extend the existing classes, you could write mixins and plugins, and this will be bound to the target class that I call "Slot Class". This technique will make the changes centralized and easily managed.
Line 21: Line 22:
Some plugins may need additional conditions, please read the readme information before installing them. Some plugins may have additional requirements, please read the readme information before installing them.
Line 25: Line 26:
Make a clean, powerful, flexible general editor, and even an application framework. And extensibility should be much easily. Make a clean, powerful, flexible general editor, and even an application framework.  And adding extensions should be very easy.
Line 32: Line 33:
 * User costom window integration  * User custom window integration
 * User custom wizard function

== Features ==

 * '''Cross platform'''
   * based on wxPython, so it can run anywhere that wxPython works, such as: Windows, Linux.
   * Unicode support.
 * '''Most features of wxStyledTextCtrl(Scintilla)'''
   * Syntax highlighting, support Python, c/c++, html, plain text
   * Folding
   * Brace Matching
   * ...
 * '''Extended selection'''
   * Extended word selection -- You can press Ctrl+MouseDoubleClick to select a word including '.'
   * Matched selection -- Select text in quoted chars like: (), [], {}, `''`, `""`.
     For example: a string just like
     {{{
        def func(self, 'This is a test'):
                      ^
     }}}
     The '^' char represents caret position in above line. If you press Ctrl+E, you will select the whole text in (),
     i.e. "self, 'This is a test'". Something more in Selection Menu.
 * '''Other editing extension'''
   * Duplicating text -- Just like Vim Ctrl+V, Ctrl+P, and more. You can duplicate above or below char, word, line
     which match the leading chars.
   * Quoting text -- Add some quoted chars before and after selected text, just as: `""`, `''`, (), [], {}, and
     customized string, etc.
   * Text convertion and view -- python -> html, reStructured Text -> html, textile -> html, and you can output or view
     the html text in message window, or html view window, or replace the selected text.
   * Utf-8 encoding auto detect
   * Changing document encoding
   * Auto backup
   * Last session support -- It'll save all the filenames as closed, and reopen the files as next started.
   * Smart judge the indent char -- It'll auto guess the indent char, and sets it.
   * Finding in files
   * Bookmark support
 * '''Python support'''
   * built-in python interactive window based on PyShell, support Unicode
   * Auto completion
   * Function syntax calltips
   * Run, run with argument, stop python source
   * Auto change current path
   * Python class browser
 * '''Code snippets'''
   You can manage your code snippets with categories, and each category can have many items. Every item will represent
   a code snippet. You can insert an item just by double-clicking on it. It even supports importing and exporting.
 * '''Simple project support'''
   Can create a special file _project, so every file and folder under the folder which has the _project can be considered as a whole project.
 * '''Extension mechanism'''
   * Script -- You can write easy script to manipulate the all resource of UliPad(NewEdit), just like: text conversion, etc.
   * Plugin -- Customized function. More complex but more powerful. Can easily merge with UliPad(NewEdit), and can be
     managed via menu.
   * Shell command -- Add often used shell commands, and execute them.
 * '''Ftp support'''
   You can edit remote files through ftp. You can add, rename, delete, upload, download file/directory.
 * '''Multilanguage support'''
   Currently supports two languages: English and Chinese, which can be auto-detected.
 * '''Shipped plugins'''(must be configed as used them before)
   * Blog editor -- You can use UliPad(NewEdit) to edit your blog, but this funcation not be wildly tested.
   * Document links -- Python documentation and wxPython documentation.
   * Many plugins can be found at UliPad(NewEdit) wiki page.
 * '''Shipped scripts'''
   * Many scripts can be found at UliPad(NewEdit) wiki page.
 * '''Wizard''' (New)
   You can make your own wizard template. The wizard can input user data, combine with template, and output the result. And wizard also support code framework created. This feature will help you improving coding efficiency.
 * '''Direcotry Browser'''(New)
   Browse multiple directories, and you can really add, delete, rename directories and files. Double click will open the file in Editor window.
 * '''AutoComPlete(acp)'''(New)
   Suport user autocomplete file, it can help to input code very helpful and functional. Just like EditPlus, but may be more powerful.
 * '''Column Editing Mode'''(New)
   You can select multilines, and then set a column mode region, so in any line of this region, if you enter a character, other lines will also add this character. If you want to deal with multilines as a similar mode, this functionality will be very handy.
 
More features are in development...
Line 36: Line 110:
 [http://newedit.tigris.org/index.htm online document]

== Screen Shot ==

attachment:newedit_2_6_1.jpg
 Many documents ship with UliPad/NewEdit source code, and you can also find other document on [http://www.donews.net/limodou my blog].
Line 44: Line 114:
Project CVS [http://newedit.tigris.org In Tigris] Project SVN http://cvs.woodpecker.org.cn/svn/woodpecker/newedit In Woodpacker.org -- new

Trac Page http://cvs.woodpecker.org.cn/trac/browser/newedit/

Suggest:
 
  '''Always download the newest source code from svn.'''

Project CVS [http://newedit.tigris.org In Tigris] -- old

UliPad(NewEdit) introduce powerpoint attachment:NewEdit.ppt
Line 48: Line 128:
 * 2.8 release 1 Windows version attachment:NewEdit2.8.exe
 * 2.8 release 1 Source attachment:newedit_2.8r1.zip
 * lastest exe version attachment:NewEdit3.2.exe 2006/01/17 updated
 * lastest source version attachment:newedit_3.2.zip 2006/01/18 updated
 * current snapshot version attachment:snapshot_ulipad.zip '''2006/08/22''' updated
Line 51: Line 132:
 * 2.7 release 2 Windows version attachment:NewEdit2.7r2.exe
 * 2.7 release 2 Source attachment:newedit_2.7r2.zip
== Maillist ==
Line 54: Line 134:
== More ScreenShot ==  * http://groups.google.com/group/UliPad
 * http://groups.google.com/group/NewEdit (old)

== ScreenShot ==
Line 59: Line 142:
Some people have write there own plugins, and have shared them. This is a collection, you can visit the link if you like:
||Plugin Name||Author||Version||Description||
Some people have written their own plugins, and have shared them. This is a collection, visit the links if you like:
Line 62: Line 144:
---- [[Include(NewEditPlugins)]]
Line 64: Line 146:
== FAQ == [[Include(NewEditScripts)]]
Line 66: Line 148:
 1. How to get the newest source code from cvs [[Include(NewEditWizards)]]
Line 68: Line 150:
 You can visit [http://www.donews.net/limodou/archive/2004/09/27/112184.aspx ''How to get the newest source code from cvs'']. Or visit http://newedit.tigris.org/servlets/ProjectSource and follow the instructions. [[Include(NewEditSnippets)]]
Line 70: Line 152:
[[Include(NewEditAcps)]]

[[Include(NewEditPackages)]]

[[Include(NewEditTutorial)]]

[[Include(NewEditResearch)]]

== Plugins depend on ==

Some plugins need the third party module preinstall, so if you want to use plugins, you should see attachment:modulesinfo.html first, and download & install the depend on modules first.

== What people say ==

''Write down your opinions''

A flexible, general editor with mixins and plugins, which uses wxPython.

-- limodou [DateTime] TableOfContents

UliPad Project(Old NewEdit)

First was FlyEdit based on Tcl/Tk, and later became NewEdit based on wxPython. And now it's UliPad.

UliPad, this name comes from Claudio Grondi, thanks you.

Description

UliPad(NewEdit) uses Mixin and Plugin technique as its architecture. Most of its classes can be extended via mixin and plugin components, and finally become an integrity class at creating the instance. So UliPad(NewEdit) is very dynamic. You can write the new features in new files, and hardly need to modify the existing code. And if you want to extend the existing classes, you could write mixins and plugins, and this will be bound to the target class that I call "Slot Class". This technique will make the changes centralized and easily managed.

Requirements:

  • Python 2.3+
  • wxPython 2.4.2.4+ Unicode Version

Some plugins may have additional requirements, please read the readme information before installing them.

Objective

Make a clean, powerful, flexible general editor, and even an application framework. And adding extensions should be very easy.

Tasks:

  • Mixin and Plugin framework
  • Unicode support
  • User defined plugin management
  • User custom window integration
  • User custom wizard function

Features

  • Cross platform

    • based on wxPython, so it can run anywhere that wxPython works, such as: Windows, Linux.
    • Unicode support.
  • Most features of wxStyledTextCtrl(Scintilla)

    • Syntax highlighting, support Python, c/c++, html, plain text
    • Folding
    • Brace Matching
    • ...
  • Extended selection

    • Extended word selection -- You can press Ctrl+MouseDoubleClick to select a word including '.'

    • Matched selection -- Select text in quoted chars like: (), [], {}, '', "".

      • For example: a string just like
                def func(self, 'This is a test'):
                              ^
        The '^' char represents caret position in above line. If you press Ctrl+E, you will select the whole text in (), i.e. "self, 'This is a test'". Something more in Selection Menu.
  • Other editing extension

    • Duplicating text -- Just like Vim Ctrl+V, Ctrl+P, and more. You can duplicate above or below char, word, line
      • which match the leading chars.
    • Quoting text -- Add some quoted chars before and after selected text, just as: "", '', (), [], {}, and

      • customized string, etc.
    • Text convertion and view -- python -> html, reStructured Text -> html, textile -> html, and you can output or view

      • the html text in message window, or html view window, or replace the selected text.
    • Utf-8 encoding auto detect
    • Changing document encoding
    • Auto backup
    • Last session support -- It'll save all the filenames as closed, and reopen the files as next started.
    • Smart judge the indent char -- It'll auto guess the indent char, and sets it.
    • Finding in files
    • Bookmark support
  • Python support

    • built-in python interactive window based on PyShell, support Unicode

    • Auto completion
    • Function syntax calltips
    • Run, run with argument, stop python source
    • Auto change current path
    • Python class browser
  • Code snippets

    • You can manage your code snippets with categories, and each category can have many items. Every item will represent a code snippet. You can insert an item just by double-clicking on it. It even supports importing and exporting.
  • Simple project support

    • Can create a special file _project, so every file and folder under the folder which has the _project can be considered as a whole project.
  • Extension mechanism

    • Script -- You can write easy script to manipulate the all resource of UliPad(NewEdit), just like: text conversion, etc.

    • Plugin -- Customized function. More complex but more powerful. Can easily merge with UliPad(NewEdit), and can be

      • managed via menu.
    • Shell command -- Add often used shell commands, and execute them.
  • Ftp support

    • You can edit remote files through ftp. You can add, rename, delete, upload, download file/directory.
  • Multilanguage support

    • Currently supports two languages: English and Chinese, which can be auto-detected.
  • Shipped plugins(must be configed as used them before)

    • Blog editor -- You can use UliPad(NewEdit) to edit your blog, but this funcation not be wildly tested.

    • Document links -- Python documentation and wxPython documentation.
    • Many plugins can be found at UliPad(NewEdit) wiki page.

  • Shipped scripts

    • Many scripts can be found at UliPad(NewEdit) wiki page.

  • Wizard (New)

    • You can make your own wizard template. The wizard can input user data, combine with template, and output the result. And wizard also support code framework created. This feature will help you improving coding efficiency.
  • Direcotry Browser(New)

    • Browse multiple directories, and you can really add, delete, rename directories and files. Double click will open the file in Editor window.
  • AutoComPlete(acp)(New)

    • Suport user autocomplete file, it can help to input code very helpful and functional. Just like EditPlus, but may be more powerful.

  • Column Editing Mode(New)

    • You can select multilines, and then set a column mode region, so in any line of this region, if you enter a character, other lines will also add this character. If you want to deal with multilines as a similar mode, this functionality will be very handy.

More features are in development...

Documents

Download

Project SVN http://cvs.woodpecker.org.cn/svn/woodpecker/newedit In Woodpacker.org -- new

Trac Page http://cvs.woodpecker.org.cn/trac/browser/newedit/

Suggest:

  • Always download the newest source code from svn.

Project CVS [http://newedit.tigris.org In Tigris] -- old

UliPad(NewEdit) introduce powerpoint attachment:NewEdit.ppt

The newest version download:

  • lastest exe version attachment:NewEdit3.2.exe 2006/01/17 updated

  • lastest source version attachment:newedit_3.2.zip 2006/01/18 updated
  • current snapshot version attachment:snapshot_ulipad.zip 2006/08/22 updated

Maillist

ScreenShot

Visit: NewEditScreenShot

Contribute

Some people have written their own plugins, and have shared them. This is a collection, visit the links if you like:

Include(NewEditPlugins)

Include(NewEditScripts)

Include(NewEditWizards)

Include(NewEditSnippets)

Include(NewEditAcps)

Include(NewEditPackages)

Include(NewEditTutorial)

Include(NewEditResearch)

Plugins depend on

Some plugins need the third party module preinstall, so if you want to use plugins, you should see attachment:modulesinfo.html first, and download & install the depend on modules first.

What people say

Write down your opinions

NewEdit (last edited 2009-12-25 07:13:58 by localhost)