Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PbTodoList

Deja trabajo apuntado dentro del IDE de PowerBuilder, sin abrir el IDE. Un skill de Claude Code para que sea la IA quien busque por tu código y te deje los resultados en la To-Do List: abres PowerBuilder y los tienes ahí, cada uno en su objeto y en su línea.

Licencia MIT Python 3.8+ Sin dependencias PowerBuilder 2025 Windows


El problema

Le pides a Claude Code «busca dónde se usa of_calcular» y te devuelve catorce sitios, con su fichero y su número de línea. Perfectos. Y ahora te toca abrirlos a mano, uno por uno, en el IDE.

La To-Do List de PowerBuilder (Tools > To-Do List) lleva ahí desde siempre y hace exactamente lo que hace falta: cada entrada guarda un enlace a un objeto y, al abrirla, el IDE te lleva a él. Lo que no hace el IDE es dejarte apuntar algo que todavía no has abierto — su opción Add Linked enlaza el painter que tengas delante.

Esto llena esa lista desde fuera.

Cómo se ve

# 1. ¿Qué hay por aquí?
$ python pbtodo.py info
Modo:  solucion
Target:    C:\...\PyPbExample\pypbexample.pbproj
IDE abierto:       no

# 2. Apuntar tres sitios (dry-run: todavía no toca nada)
$ python pbtodo.py add w_main:159 w_main:160 n_cst_pyton_excel:100 \
         --texto "Usos de of_set_celda" --fuente
Entradas: 0 -> 3
Se apuntarian: Usos de of_set_celda - w_main:159, ... - w_main:160, ... - n_cst_pyton_excel:100
(dry-run: no he tocado nada. Anade --escribir para hacerlo de verdad.)

# 3. Ahora de verdad
$ python pbtodo.py add w_main:159 w_main:160 n_cst_pyton_excel:100 \
         --texto "Usos de of_set_celda" --fuente --escribir
Apuntadas: 3
Backup:   C:\Users\...\AppData\Local\pbtodo\backups\todo_pypbexample_20260809.reg

Abres PowerBuilder, Tools > To-Do List, y ahí están los tres. Doble clic y estás dentro.

Instalación

Ojo: este repo no es una solución de PowerBuilder que abras desde el IDE, como el resto de ejemplos del blog. No hay .pbsln ni PowerScript: es un skill de Claude Code (Python + un SKILL.md). Lo que se prueba con él sí es PowerBuilder.

Clónalo directamente en tu carpeta de skills, con el nombre del skill (pb-todo) y no con el del repo:

git clone https://github.com/rasanfe/PbTodoList.git "%USERPROFILE%\.claude\skills\pb-todo"

También puedes pedírselo a Claude Code —«clona este repo en mi carpeta de skills como pb-todo»—: es un git clone normal, te pedirá permiso y lo deja puesto. Para que valga solo en un proyecto, la misma carpeta dentro de su .claude\skills.

Y a partir de ahí, en lenguaje natural:

«busca dónde se usa of_set_celda y déjame los sitios apuntados en el To-Do»

Requisitos: Windows, PowerBuilder instalado (probado en 2025 R2) y Python 3.8+. Sin dependencias: solo biblioteca estándar. Si tienes PB en una ruta rara, apúntala con la variable de entorno PB_HOME.

Comandos

Comando Qué hace
info qué proyecto PB hay aquí, versiones instaladas, si el IDE está abierto
find <patrón> busca objetos por nombre (admite * y ?)
list lo que hay ahora en la To-Do List
add <objeto[:línea]>... apunta entradas
done <patrón> marca la casilla (--no para desmarcar)
rm <patrón> · --hechas · --todas borra entradas
open <objeto> --lanzar abre el IDE plantado en ese objeto

Añade --json a cualquiera para una salida fácil de parsear, y --raiz para trabajar sobre otra carpeta.

Dos cosas que hay que saber

1. El IDE tiene que estar CERRADO

PowerBuilder tiene la lista en memoria y al cerrar escribe su copia encima: no ve lo que metas por fuera y además te lo borra. Está comprobado. Por eso los scripts se niegan solos si detectan el IDE corriendo (leer sí te dejan; escribir no).

Dicho de otro modo: esto sirve para preparar trabajo antes de abrir el IDE, no para pilotarlo en caliente. Escribiendo con el IDE cerrado, lo tuyo y lo del IDE conviven sin pisarse.

2. La línea no cuenta lo mismo en las dos vistas

Abre line= cuenta
por defecto el painter (admite --columna) líneas del script
--fuente el Edit Source líneas del fichero .sr*

La misma línea 6 cae en dos sitios distintos, porque cada ventana cuenta las líneas de lo que enseña. Si el número lo sacaste leyendo el fichero, usa --fuente.

Cómo está montado

Fichero Responsabilidad
todolist.py el registro: dónde vive la clave, el formato de las entradas y el enlace
pbfind.py el disco: encontrar workspace, targets, .pbl y objetos
pbide.py la instalación de PB y abrir un objeto por línea de comandos
pbtodo.py la CLI que junta las tres
SKILL.md el skill de Claude Code

Todo lo que escribe es dry-run por defecto y exporta la clave a un .reg en %LOCALAPPDATA%\pbtodo\backups antes de tocarla.

Aviso

Esto escribe en HKCU\Software\Sybase\PowerBuilder\<versión>\.... No es una API pública ni algo que Appeon se haya comprometido a mantener, así que puede cambiar en cualquier versión: la documentación explica la función y cómo se usa desde el IDE, que es para lo que está pensada, pero no entra en el almacenamiento, y ORCA tampoco expone nada de esto. Lo que hay aquí está comprobado contra el registro real, no supuesto.

Gracias

A Roland Smith, de Topwiz Software: su PBSearch tiene un botón «To Do List» que es donde muchos descubrimos que esta ventana servía para algo.

Licencia

MIT — Ramón San Félix, 2026.


📖 Artículo completo con toda la historia y los detalles: Usando To-Do List de PowerBuilder con Claude Code Skill

About

Skill de Claude Code que rellena la To-Do List del IDE de PowerBuilder desde fuera: la IA busca por tu código y te deja las tareas apuntadas en el objeto y la línea exactos. Python sin dependencias.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages