Personal Website

My Web: MindEchoes.com

Sunday, September 26, 2010

NINJA-IDE

Hace una semana aproximadamente empezamos con Fallen el desarrollo de un proyecto para programar un IDE centrado específicamente en Python, brindando muchas facilidades y características que se suelen encontrar en IDEs para lenguajes tipados, pero que para Python o no existen, o nos pareció que el soporte no era realmente bueno.

El nombre de "NINJA-IDE" viene de: Ninja Is Not Just Another IDE




Y la verdad estamos muy emocionados porque en solo una semana de desarrollo hemos logrado bastantes cosas, lo cual nos permite ya empezar a desarrollar NINJA usando NINJA! :D

Como no podía faltar, algunos screenshots:



Algunas Features incluidas hasta el momento:

  • Resaltado de sintaxis para: Python, Java, efene, C, C#
  • Marca las tabulaciones con pequeños puntos
  • Incluye una consola de Python
  • Permite abrir una carpeta, y la explora recursivamente para mostrar luego toda la estructura de la carpeta junto con los archivos Python, HTML, PNG Y JPG incluidos (una especie de detección automática de lo que podría ser un proyecto Python)
  • Funcionalidades de Abrir, Guardar y Guardar Como soportadas.
  • Nos muestra cuando un archivo ha sido modificado y también nos advierte al cerrarlo
  • Indentación automatica
  • F4: Oculta la consola
  • F11: Oculta todo excepto el editor
  • Permite visualizar las imagenes del proyecto dentro del mismo IDE abriendo una pestaña nueva
  • Cierre automatico de los simbolos: ', ", {, [ y (
  • Y algunos más...

Obviamente quedan Bugs por arreglar y variasssss cosas por agregar antes de la primera versión oficial, pero vamos en camino...

20 comments:

Alejandro Alcalde said...

Pinta bien ese proyecto... No me importaria ayudaros dentro de mis capacidades :)

Fallen said...

jejeje, tanto presumir, tanto contar de NINJA, que te olvidaste de poner de donde bajarlo para probarlo :P, asi que lo voy a hacer yo.

Para descargar los archivos de NINJA pueden hacerlo desde el Google Code o bien, los q tengan mercurial, descargarlo directamente con el comando 'hg clone https://ninja-ide.googlecode.com/hg/ ninja-ide '.

Ovbiamente, esperamos un feedback de los que lo prueben ^^

Diego Sarmentero said...

Excelente!
Toda ayuda siempre es buena!

Cualquier consulta podes sumarte al grupo para reportar bugs o enterarte de como esta armada la estructura, etc.

Saludos!

Facundo said...

Muy interesante el proyecto, pinta lindo.
Me gustaria probarlo, hay algun link para bajar algo?

Diego Sarmentero said...

Por el momento no hay ningún instalador o algo especifico, ya que el proyecto tiene apenas más de una semana de haber empezado.
Lo que si se puede hacer es bajarse el código, si tenes instalado mercurial, ejecutas en la linea de comando:
hg clone https://ninja-ide.googlecode.com/hg/ ninja-ide

y listo. Entras en la carpeta "ninja-ide" que se creo y ejecutas:
python ninja-ide
(tenes que tener instalado PyQt eso si...)
Después cuando tengamos la RC y la primer versión haremos el instalador.

Saludos!

Diego Sarmentero said...

perdon jeje por escribir apurado...
adentro de la carpeta "ninja-ide"

ejecutas:
python ninja.py

Pablo padulles said...

Hola, te dejo algunas observaciones.
En el explorador de archivos q te ponga las carpetas primero en lugar de los archivos. Q puedas ver otros archios, por ejemplo yo uso archivos XML aparte de los PY.

Saludos.

Diego Sarmentero said...

Lo de que puedas ver otros archivos se esta por agregar en las preferencias de NINJA en el menu Edit.
Y capaz también para que sea configurable al acceder a las "project properties" del proyecto abierto.

El tema de las carpetas primero habría que analizarlo, ya que se pusieron los archivos primero para tener mas rápido acceso a los mismos y las carpetas como algo en segundo plano.

Pablo padulles said...

Buena onda, cuando suban los cambios de los xml avisa q lo bajo :)

Diego Sarmentero said...

Ya se pueden ver archivos XML, HTML, y de muchos lenguajes más desde la incorporación de Pygments.

[ DebianitraM ] said...

Un pregunta...
Por qué si hablan español, tienen el sitio en inglés?
Estaría bueno, tener alguna documentación en español también.

Diego Sarmentero said...

Tenemos el sitio en ingles porque permite llegar a más personas.
Si te fijas, la documentación de como hacer plugins esta solo en español por ahora, la idea es que para la Versión 1.0, este todo tanto en ingles como en español.
Pero siendo el ingles siempre como primera opción.

Anonymous said...

ejecuto el ninja.py, se abre una ventana del dos, pero nada mas, ¿que es lo que hago mal?.

un saludo y gracias....

Diego Sarmentero said...

Que sistema operativo tenes?
Tenes que ejecutar el "ninja.py" que esta adentro de la carpeta "ninja_ide" si bajaste el código del repositorio, y si descargaste el zip, es el único "ninja.py" que hay.
Obviamente deberías tener instalado Python y PyQt para poder usarlo como figura en los requerimientos.

Anonymous said...

tengo instalado todo, o por lo menos eso creo, el error es el que sigue:

from ide import IDE
File "C:\Archivos de programa\ninja-ide\gui\qt\ide.py", line 4, in
from PyQt4.QtGui import QMainWindow
ImportError: No module named PyQt4.QtGui

un saludo y gracias....

Diego Sarmentero said...

A simple vista pareciera que te falta instalar PyQt.

Anonymous said...

instale NINJA-IDE 1.1-rc en ubuntu 10.10, todo está muy genial, les felicito, pero tengo un problema gigante ¿Como funciona el autocompletado? Les agradecería me pudiesen ayudar.

Que esten de lo mas que hay.

Adios! :)

Diego Sarmentero said...

El autocompletado viene activado por defecto como podes ver en las preferencias, pero tiene 2 modalidades:
- autocompletado para archivos dentro de proyectos abiertos con ninja: en esta modalidad tenes un autocompletado mucho mas preciso y completo (se activa con el punto o apretando ctrl+espacio)
- autocompletado para archivos standalone, son archivos que no pertenecen a ningun proyecto y fueron abiertos simplemente usando "open file", el autocompletado en estas situaciones, al no tener una carpeta de proyecto donde guardar la info recolectada, por cuestiones de performance se mantuvo bien basico, brindando solo autocompletado para los objetos tipicos de python (no imports), y los objetos creados en el mismo documento donde se trabaja.

Para la 2.0 se tiene pensado mejorar el autocompletado en general.

Anonymous said...

Aps! wena... es que esperaba yo que autocompletara todas las cosas que pudiesen tener métodos asociados (diccionarios, listas, cosas varias)

Tengo una consulta ¿Como puedo aportar? Me ha gustado bastante el IDE, y creo que puede ser aún mejor todavía, soy estudiante de informatica, Licenciatura en Ciencia de la Computación para ser mas exacto, y desde febrero de este año que he estado probando Python y me ha gustado mucho y creo que vale la pena poder aportar a este proyecto, me gustaría saber como es que puedo aportar.

Por su atención, gracias.

Diego Sarmentero said...

Podes sumarte a las listas de Correo, la general o la de desarrolladores (o ambas):

General:
http://groups.google.com/group/ninja-ide

Desarrolladores:
http://groups.google.com/group/ninja-ide-dev

Desde esta página podes obtener el código de la aplicación:

http://code.google.com/p/ninja-ide/

Y podes usar las listas para consultar lo que quieras, sugerir features, y consultar de que forma podrías participar. Acá hay una página que habla de las distintas formas de participación:

http://ninja-ide.org/participate.html

Y si encontras errores que quieras reportarlos podes hacerlo en la siguiente página:

http://code.google.com/p/ninja-ide/issues/list

Saludos!