jueves, febrero 04, 2010

Crossplatform TextMate (CrossMates) ahora es Prymatex



Luego de un año desde el momento donde comenzaba con la idea de implementar TextMate sobre Python/PyQt4, retomo el proyecto. Esta vez no estoy solo, diegomvh, compañero de tesis y locurask me acompañan. Esta vez fue rebautizado: Comenzando con PyMate, se deformó en Prymate, para luego dar lugar a un X por UniX, con lo que tenemos PryMateX (del cual sale una linda sigla PMX).
El proyecto está hosteado en Google Code en un repositorio Mercurial. Quienes quieran comenzar a probar, pueden hacer lo siguiente:

hg clone http://code.google.com/hg/prymatex
cd src/prymatex
python main.py

Necesitan Python 2.6 debido a la plistlib y PyQt 4.5 debido a alguna funcionalidad extra con el manejo de QTabWidgets.

Hoy está en un estado alfa, porque aún no se completa la envoltura/wrapping de una librería de expresiones regulares con la cual están definidos los Bundles de TextMate, llamada Oniguruma.

Cualquier voluntario está invitado a participar, posteen comentarios o envien un mail a alguno de los miembros del proyecto!

3 comentarios:

OrB dijo...

Tal parece que te has equivocado en la línea del mercurio, en la página del proyecto dice:
hg clone https://prymatex.googlecode.com/hg/ prymatex

(No se porque sale con espacio.)

saludos.

OrB dijo...

Un issue por acá:

2010-07-30 15:54:11,763 - root - INFO - Application startup
../prymatex
True
2010-07-30 15:54:11,938 - prymatex.resmgr - INFO - Stylesheet: ../prymatex/prymatex.style
Traceback (most recent call last):
File "/usr/lib/python2.6/logging/__init__.py", line 768, in emit
msg = self.format(record)
File "/usr/lib/python2.6/logging/__init__.py", line 648, in format
return fmt.format(record)
File "/usr/lib/python2.6/logging/__init__.py", line 436, in format
record.message = record.getMessage()
File "/usr/lib/python2.6/logging/__init__.py", line 306, in getMessage
msg = msg % self.args
ValueError: incomplete format
Traceback (most recent call last):
File "/usr/lib/python2.6/logging/__init__.py", line 768, in emit
msg = self.format(record)
File "/usr/lib/python2.6/logging/__init__.py", line 648, in format
return fmt.format(record)
File "/usr/lib/python2.6/logging/__init__.py", line 436, in format
record.message = record.getMessage()
File "/usr/lib/python2.6/logging/__init__.py", line 306, in getMessage
msg = msg % self.args
ValueError: incomplete format
2010-07-30 15:54:11,940 - prymatex.resmgr - INFO - Style loaded
2010-07-30 15:54:11,969 - prymatex.app - INFO - Checking for another instance: False
2010-07-30 15:54:11,982 - prymatex.app - WARNING - The theme dir does not exist: /home/omar/Prymatex/prymatex/src/prymatex/resources/Themes
2010-07-30 15:54:11,983 - prymatex.app - WARNING - The theme dir does not exist
load_texmate_bundles tomó 0.0007420 s
Traceback (most recent call last):
File "main.py", line 49, in
sys.exit(main())
File "main.py", line 20, in main
myapp = app.PMXApplication(argv)
File "../prymatex/lib/deco/__init__.py", line 48, in wrapped
retval = f(*largs, **kwargs)
File "../prymatex/app.py", line 58, in __init__
self.main_window = PMXMainWindow()
File "../prymatex/gui/mainwindow.py", line 27, in __init__
self.setupUi(self)
File "../prymatex/gui/ui_mainwindow.py", line 19, in setupUi
self.tabWidgetEditors = PMXTabWidget(MainWindow)
File "../prymatex/gui/tabwidget.py", line 26, in __init__
self.appendEmptyTab()
File "../prymatex/gui/tabwidget.py", line 111, in appendEmptyTab
editor = self.getEditor()
File "../prymatex/gui/tabwidget.py", line 61, in getEditor
editor = self.EDIT_TAB_WIDGET(self, *largs, **kwargs)
File "../prymatex/gui/editor.py", line 43, in __init__
self.syntax_processor = PMXSyntaxProcessor(self.document(), formatter = PMXSyntaxFormatter.load_from_textmate_theme('LAZY'))
File "../prymatex/gui/syntax.py", line 47, in load_from_textmate_theme
assert theme_name in TM_THEMES, 'No textmate theme for %s' % theme_name
AssertionError: No textmate theme for LAZY


Instalado Python 2.6, PyQT4.7.

OrB dijo...

Buenas noticias, E-TextEditor (el Textmate de windows) ya es opensource, por tanto nos podemos dar una idea para prymatex =).
http://github.com/etexteditor/e/

De ahí nos podemos bajar el código.