Referencia del DSL del Motor de Reglas
El Lenguaje de Dominio Específico (DSL) de RuleDock te permite crear potentes reglas de organización usando expresiones legibles. Esta referencia cubre todos los operadores y patrones disponibles.
Descripción General
Una expresión DSL evalúa las propiedades de un icono de escritorio y devuelve verdadero o falso. Si es verdadero, el icono se organiza en el fence de destino.
ext == '.png'
Esto coincide con cualquier archivo con extensión .png.
Propiedades Disponibles
Puedes hacer referencia a estas propiedades de cada icono de escritorio:
| Propiedad | Descripción | Valor de Ejemplo |
|---|---|---|
ext |
Extensión del archivo (incluyendo el punto) | .png, .docx, .exe |
name |
Nombre del archivo (sin ruta) | Screenshot_2026.png |
path |
Ruta completa del archivo | C:\Users\John\Desktop\file.txt |
Operadores de Comparación
Igualdad (==)
Verifica si una propiedad es exactamente igual a un valor. No distingue entre mayúsculas y minúsculas.
ext == '.PDF' # Coincide con .pdf, .PDF, .Pdf, etc.
name == 'readme.txt'
Desigualdad (!=)
Verifica si una propiedad NO es igual a un valor.
ext != '.tmp' # Excluir archivos temporales
path != 'C:\Windows'
Contiene (contains)
Verifica si una propiedad contiene una subcadena. No distingue entre mayúsculas y minúsculas.
name contains 'backup' # Coincide con "backup.zip", "my_backup_2026.rar"
path contains 'Projects'
En Lista (in [...])
Verifica si una propiedad coincide con cualquier valor de una lista.
ext in ['.jpg', '.png', '.gif', '.webp'] # Archivos de imagen
ext in ['.doc', '.docx', '.pdf'] # Documentos
Operadores Lógicos
Y (and)
Ambas condiciones deben ser verdaderas.
ext == '.png' and path contains 'Screenshots'
# Coincide: C:\Users\Screenshots\image.png
# No coincide: C:\Users\Documents\image.png
O (or)
Cualquiera de las condiciones debe ser verdadera.
ext == '.exe' or ext == '.msi'
# Coincide: setup.exe, install.msi
Combinar AND y OR
AND tiene mayor precedencia que OR. Usa expresiones complejas con cuidado:
# Esto significa: (A AND B) OR C
ext == '.png' and name contains 'screenshot' or ext == '.gif'
Entrecomillado de Cadenas
Los valores pueden ir entre comillas simples o dobles:
name contains "my file" # Comillas dobles
name contains 'my file' # Comillas simples
ext == .txt # Sin comillas (valores simples)
Usa comillas cuando los valores contengan espacios o caracteres especiales.
Tipo de Regla Regex
Para coincidencias de patrones más allá del DSL, usa el tipo de regla Regex (no es un operador de expresión). Esto aplica un patrón regex al nombre del archivo.
# Coincide con "Screenshot_20260205_123456.png"
^Screenshot_\d{8}_\d{6}\.png$
# Coincide con patrones de versión como "app_v2.1.exe"
_v\d+\.\d+\.exe$
# Coincide con archivos que comienzan con "backup" o "archive"
^(backup|archive)
# Coincide con cualquier archivo numerado
\(\d+\)\.[a-z]+$ # p. ej., "file (1).txt"
Seguridad de Regex
Todos los patrones regex se evalúan con:
- Coincidencia sin distinción de mayúsculas y minúsculas por defecto
- Tiempo límite de 200ms para prevenir retroceso catastrófico (ReDoS)
- Los patrones que exceden el tiempo límite se omiten silenciosamente
Ejemplos Completos
Organizar Archivos de Diseño
ext in ['.psd', '.ai', '.xd', '.fig', '.sketch']
Organizar Archivos de Desarrollo
ext in ['.js', '.ts', '.py', '.cs', '.java', '.cpp', '.h']
Organizar Capturas de Pantalla del Proyecto
ext in ['.png', '.jpg'] and path contains 'Projects'
Organizar Documentos de Trabajo (Excluir Personales)
ext in ['.docx', '.xlsx', '.pptx'] and path contains 'Work' and name != 'personal'
Instaladores y Archivos de Configuración
ext in ['.exe', '.msi'] and name contains 'setup'
or
ext in ['.exe', '.msi'] and name contains 'install'
Solución de Problemas
La expresión no coincide
- Verifica errores tipográficos en los nombres de propiedades (
ext,name,path) - Recuerda que las comparaciones no distinguen entre mayúsculas y minúsculas
- Usa la función de Vista Previa en la configuración de reglas para probar
- Verifica que el archivo realmente tenga la extensión que esperas
El regex no funciona
- Prueba tu regex primero en regex101.com
- Escapa los caracteres especiales:
\.para un punto literal,\\para barra invertida - Los patrones complejos pueden exceder el tiempo límite—simplifícalos si es necesario