Personal Website

martes, 16 de agosto de 2011

Algunos Adelantos de NINJA-IDE 2.0

Actualmente nos encontramos trabajando en la versión 2.0 de NINJA-IDE, la cual incorpora muchísimos cambios con respecto a la 1.1 que fue la última versión liberada.
La arquitectura misma del IDE fue rediseñada para que sea más optima y se consiguió un mejor orden de las partes del programa y se gano un incremento importante en Performance! :D

A su vez, para esta nueva versión (que actualmente esta en desarrollo, pero es completamente usable) ya se han agregado muchas nuevas features, y todavía quedan varias más por agregar!

Algunas de las Nuevas Features son:

Recent Projects:
En la versión 1.1 se podían visualizar y abrir los proyectos recientes desde la página de inicio de NINJA-IDE, ahora estos proyectos pueden quitarse de la lista, y dockearlos a la misma para que queden siempre en los primeros puestos.


Soporte para Virtualenv:
Se agregó soporte para Virtualenv, el cual puede ser especificado en la creación del proyecto desde NINJA-IDE o sobre un proyecto ya existente.

Profiles:
A veces trabajamos con varios proyectos que están relacionados, y si les gusta tener abierto solo lo que es necesario, ahora en NINJA-IDE 2.0 se puede crear un perfil sobre los proyectos abiertos, agrupándolos bajo un nombre, de esta forma cuando abrimos un determinado perfil cierra todo lo que este abierto y carga todos los proyectos asociados a ese perfil, lo que nos permite cambiar de a varios grupos de proyectos en muy pocos clicks.

Import From Everywhere:
Hay casos donde estamos escribiendo código en un archivo que ya tiene varias lineas y empezamos a agregar clases que se encuentran en otros paquetes en nuestro código y el caso común probablemente sería scrollear hasta la cabecera del archivo, agregar nuestros imports y volver adonde estábamos. Para evitar tener que andar scrolleando de un lado a otro, NINJA-IDE nos permite incluir imports desde cualquier punto del código y automáticamente los inserta en la cabecera y los agrupa con otros imports que estén relacionados.

Code Locator:
Esta Feature nos permite tener acceso de forma rápida y directa a cualquier archivo, función o clase de cualquiera de los proyectos que tengamos cargados en NINJA-IDE con solo presionar un par de teclas!!
Al presionar "Ctrl+K", nos aparecerá un popup sobre un campo de texto, en el que podremos ir escribiendo y a medida que escribimos los resultados se irán filtrando en el popup. Es importante saber que si buscáramos la función: "obtain_editor", no sería necesario comenzar a escribir "obta...", sino que podemos escribir cualquier parte del nombre y será filtrada de todas formas, por ejemplo podríamos escribir: "_edit" y "obtain_editor" sería uno de los resultados en el filtro.
También una característica de esta Feature, es que cuando seleccionamos una Clase o Función, nos abre el archivo en el que se encuentra y nos ubica en la linea donde es definida dicha estructura.
Esta funcionalidad posee unos pre-filtros que se pueden aplicar para por ejemplo:

  • f: filtrar solo por archivos python.
  • m: filtrar solo por métodos.
  • c: filtrar solo por clases.
  • . filtrar solo por las clases y métodos contenidos en el archivo siendo visualizado.
  • n: filtrar solo por archivos no python.



Find Usages:
Desde la versión 1.1 contamos con "Find in Files", una Feature que nos permite buscar una o varias palabra, una expresioń regular, etc en todo el árbol del proyecto. Ahora para la versión 2.0 se ha mejorado esa funcionalidad, y a la vez se ha agregado "Find Usages", la cual se encuentra como una opción en el menu contextual del Editor y nos permite encontrar todas las ocurrencias de determinada palabra sobre la que estemos posicionados.

Show Errors and Pep8:
En la versión 1.1 estas funcionalidades estaban presentes, pero en la 2.0 se ha mejorado el rendimiento de las mismas, y se han agregado opciones adicionales en preferencias para poder configurarlas a gusto con la posibilidad de mejorar aún más la performance.
También podemos ver que en los archivos que contienen errores de pep8 nos muestra un icono de advertencia en la solapa donde se encuentra abierto ese archivo, y en los archivos que contienen errores estáticos de código nos muestra un icono de bug en esa solapa. De esta forma con solo abrir el archivo ya sabemos si hay algo a tener en cuenta en ese archivo y no es necesario tener que scrollear y ver si hay alguna notificación en alguna linea.


Menu Tabs:
Se ha agregado en los Tabs que contengan un Editor un menu contextual el cual permite splittear la ventana desde ahí mismo, realizar distintas operaciones de cerrado de tabs, reabrir  los últimos tabs cerrados, cambiar dinamicamente el tipo de resaltado de sintaxis, y algunas cosas más.

Web Inspector:
Para aquellos proyectos que utilizan la previsualización de una página web desde NINJA-IDE, se agregó un web inspector, el cual podría decirse que es un pseudo firebug, el cual nos permite ver la información del HTML siendo renderizado, y poder manipular en vivo el CSS, debuggearlo, etc.

Navigate Code:
En esta nueva versión se incorpora una funcionalidad que es de mucha ayuda, la cual nos permite presionar la tecla "Ctrl" y mover el mouse sobre las variables o funciones y ver como estas se pintan como si fuera links y al hacer click sobre una de ellas, NINJA-IDE nos llevara a la definición de dicha variable o función, de esta forma podemos saltar de un punto a otro del código con mucha facilidad.

Bookmarks, Breakpoints and Jumps:
Ahora es posible colocar breakpoints (para el debugger en desarrollo) y bookmarks sobre el Sidebar Widget del editor, sobre la misma area donde se ubican los indicadores de Code Folding. Y en la esquina superior derecha del manejador de Tabs de editores, podemos ver 2 flechas (izquierda-derecha), las cuales nos permiten navegar el historial de saltos en el código de la siguiente forma:
  • Flechas Naranja: permiten navegar el historial de los saltos que se hizo usando "Jump to Line", o Ctrl+Click sobre alguna función o variable en el editor.
  • Flechas Rojas: permiten navegar entre todos los breakpoints que hayamos agregado, de esta forma podemos con un simple click, ir recorriendo linea por linea y archivo por archivo donde se hayan colocado breakpoints.
  • Flechas Azules: permiten navegar entre todos los bookmarks que hayamos agregado, de esta forma podemos con un simple click, ir recorriendo linea por linea y archivo por archivo donde se hayan colocado bookmarks. Esto es muy util cuando estamos trabajando en varias partes de distintos archivos para una funcionalidad que engloba varias cosas, entonces colocando bookmarks podemos saltar precisamente a cada uno de estos lugares.

Hay varias Features más que se han agregado, pero este es un simple pantallazo de lo que se viene para NINJA-IDE 2.0, para más información se encuentran las Release Notes o nuestro Twitter: ninja_ide

Y como siempre, para cualquier consulta estan las listas de correo de NINJA-IDE y el canal de IRC:

ninja-ide@googlegroups.com
ninja-ide-dev@googlegroups.com

#ninja-ide (at Freenode)

14 comentarios:

juancarlospaco dijo...

lo de Change Syntax esta bueno :)

Maximiliano Churichi dijo...

Pinta muy bien! lo voy a probar!

luismarianoguerra dijo...

muy groso gaturro

Darukur dijo...

Felicitaciones!, como siempre mejorando!!!

Anónimo dijo...

esta tomando muy buena pinta y forma!!!

sigan con el buen laburo y exitos!!!

Javis dijo...

Increíble todo el trabajo realizado! Y me imagino el orgullo de ver los resultados obtenidos!!

Anónimo dijo...

me parece bien, pero me gustaria que el proyecto se ponga fuera de google,ya que desde el sitio oficial no lo puedo descargar por ser cubano.

Diego Sarmentero dijo...

No conocía de esas limitaciones, vamos a ver si para la siguiente versión podemos hostear los instaladores directamente en nuestro hosting para que sea accesible desde cualquier lado, el repositorio por como venimos trabajando no creo que se mueva, pero siempre esta la opción de bajar el zip con los fuentes que se distribuyen en cada nueva versión.

William dijo...

Desde el primer dia que me tope con este ide me parecio muy interesante y espero que siga avanzando a pasos agigantados como lo está haciendo =) exitos

hipersayan_x dijo...

Este es por lejos el mejor IDE que existe para Python, y si más adelante le agregas integración con Qt Designer y QML Designer sos Dios :D

Diego Sarmentero dijo...

jeje creo que es como mucha responsabilidad... pero si, estamos trabajando en tratar de incorporar soporte para qt designer, y agregarle plugins al designer para que sea mas intuitivo y facil de usar como herramientas como VS y Netbeans...
Hay muchas ideas... vamos a ver cuales podemos incluir en la 2.0, y despues a seguir trabajando.

Kolep dijo...

Esta muy interesante es "simple y bello" al mismo tiempo asi da gusto un IDE.
Felicidades van por buen camino.

Fab dijo...

se puede bajar la 2.0 aun siendo beta?

Diego Sarmentero dijo...

Si, podes bajar los instaladores de la Beta desde aca:
https://github.com/ninja-ide/ninja-ide/downloads

O si queres podes usarla directo desde código fuente desde aca:
https://github.com/ninja-ide/ninja-ide/zipball/master

Y si tenes git podes bajarte el código de repositorio haciendo:
git clone git@github.com:ninja-ide/ninja-ide.git

Y podes actualizar todos los días que siempre vamos subiendo código estable. (lo unico que necesitas para poder ejecutar ninja es PyQt, teniendo eso podes entrar a la carpeta y hacer: python ninja-ide.py y listo)

Saludos!