> For the complete documentation index, see [llms.txt](https://documentation.soulver.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documentation.soulver.app/es/experimental/x.md).

# Soulver X Series

La búsqueda de un Soulver más perfecto

## ¿Qué es la Serie Soulver X?

En 2024, nos embarcamos en un proyecto de I+D de varios años cuya misión es:

* Explorar ideas nuevas e interesantes para Soulver
* Buscar nuevas formas y nuevos flujos de trabajo
* Ir audazmente donde ningún calculadora de notas ha ido antes 🖖

Tenemos la intención de lanzar una nueva versión importante de la serie X cada año.

### Patrocinio de la Serie Soulver X

Si eres un usuario de mucho tiempo (o megafan de Soulver) y te entusiasma este trabajo, podrías considerar [patrocinar nuestra misión en GitHub](https://soulver.app/sponsor).

Además, como patrocinador, obtendrás acceso al prototipo más reciente de la serie X (X3, X4, etc.) con más funciones nunca antes vistas en el dominio de las calculadoras de notas.

Nuestro equipo (muy) pequeño agradecería el apoyo, y podremos dedicar más recursos a este tipo de I+D avanzado de calculadoras de notas.

## Soulver X2 (2025)

### Subhojas

* Una subhoja es una hoja separada que vive dentro de un único token.
  * Crea una subhoja desde el botón + en la barra de pestañas.
  * Haz doble clic en el token morado para abrir el editor de subhojas.
* Las subhojas pueden hacer referencia a variables de la hoja principal (siempre que las variables estén declaradas por encima de la línea de la subhoja).

### Tokens Deslizadores con Rangos

* Un token deslizador te permite especificar el rango para un deslizador desplazable
  * Crea un deslizador desde el botón + en la barra de pestañas.
  * Haz doble clic en el token verde para abrir la ventana emergente del deslizador.

### Líneas Divisorias

* Escribe guion (-) tres veces para insertar una línea divisoria.
* Usa líneas divisorias para crear una separación visual más grande entre diferentes partes de tu hoja.

## Soulver X1 (2024)

X1 incluye implementaciones de las principales solicitudes de características de Soulver, incluyendo:

* [Soporte para funciones personalizadas](https://soulver.app/feedback) (*incluyendo* *funciones de lenguaje natural*)
* [Compartir variables entre hojas](https://soulver.app/feedback) (*a través de la nueva hoja "encabezado"*)
* [Conexión a APIs Web](https://soulver.app/feedback) (*solo con pegar y un par de clics*)

### Pestañas

<figure><img src="https://1876226858-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcMcpZvntkQBMzj3rnk9%2Fuploads%2Fgit-blob-cdf182314468fb9dea0fcd475a188840482ba75b%2Fimage%20(30).png?alt=media" alt=""><figcaption><p>Múltiples pestañas en Soulver X1</p></figcaption></figure>

Los documentos en Soulver X1 comienzan con una única pestaña, y puedes añadir más haciendo clic en el botón + a la derecha de la barra de pestañas.

**Cambiar el nombre de las pestañas**

Haz doble clic en el título de una pestaña para darle un nombre alternativo. Alternativamente, haz clic con el botón derecho del ratón en la pestaña y elige "Cambiar nombre".

**Eliminar pestañas**

Cuando pasas el ratón sobre una pestaña, haz clic en el botón x para eliminar. Alternativamente, haz clic con el botón derecho del ratón en la pestaña y elige "Eliminar"

{% hint style="warning" %}
Las pestañas son una característica en desarrollo.

No puedes reorganizar las pestañas (todavía), y añadir demasiadas pestañas en un solo documento no funciona correctamente.
{% endhint %}

### La hoja de encabezado

El encabezado es una hoja dedicada a definir variables, unidades, funciones y valores web que se pueden usar en todas las pestañas de tu documento.

<figure><img src="https://1876226858-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcMcpZvntkQBMzj3rnk9%2Fuploads%2Fgit-blob-3a94ad6a77cf0805c50805c50fb3cf4395897105%2FScreenshot%202024-05-24%20at%202.11.42%E2%80%AFPM%20(1).png?alt=media" alt="" width="375"><figcaption></figcaption></figure>

### **Variables entre pestañas**

Declara variables para tu documento en el encabezado de la misma manera que declararías variables locales.

Por ejemplo:

```
mi variable = 123
```

`mi variable` estará disponible en todas tus hojas

{% hint style="info" %}
Tus pestañas solo pueden hacer referencia a variables, pero no pueden modificar su definición de tal manera que se aplique a otras hojas del documento.
{% endhint %}

### **Unidades de equivalencia**

Una unidad de equivalencia se define en términos de una unidad existente.

Define una nueva unidad de equivalencia en el encabezado usando (por ejemplo):

```
1 sandía = 10 lb
```

<figure><img src="https://1876226858-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcMcpZvntkQBMzj3rnk9%2Fuploads%2Fgit-blob-93e6437f2556ea3cedf969bf10a712cfe17933e4%2Fimage%20(22).png?alt=media" alt=""><figcaption><p>Declarar una nueva unidad de masa en Soulver X1</p></figcaption></figure>

Ahora se puede usar `sandía` como unidad de masa en todas tus pestañas.

<figure><img src="https://1876226858-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcMcpZvntkQBMzj3rnk9%2Fuploads%2Fgit-blob-9897c74acb741dfb445937fd7a687eb7adfd7eb3%2Fimage%20(23).png?alt=media" alt=""><figcaption><p>Usar una unidad de equivalencia personalizada en Soulver X1</p></figcaption></figure>

{% hint style="info" %}
Soulver X1 pluraliza automáticamente tu nueva unidad (en inglés).

Así que en este ejemplo, tanto "watermelons" serán reconocidos como un nombre de unidad válido, aunque la definición fuera "watermelon".
{% endhint %}

### **Unidades genéricas**

Una unidad de equivalencia es un tipo de unidad completamente nuevo, no definido en términos de una unidad existente.

Define una nueva unidad genérica en el encabezado usando (por ejemplo):

```
operación = nueva unidad
```

<figure><img src="https://1876226858-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcMcpZvntkQBMzj3rnk9%2Fuploads%2Fgit-blob-85c97e3b5766b595ad31e6858600c8e390fc9e39%2Fimage%20(24).png?alt=media" alt=""><figcaption><p>Declarar un tipo de unidad genérica en Soulver X1</p></figcaption></figure>

La unidad `operación` ahora se puede usar en todas tus pestañas (incluyendo en tasas):

<figure><img src="https://1876226858-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcMcpZvntkQBMzj3rnk9%2Fuploads%2Fgit-blob-8479b7a4e8cd9247b14525512983cb08dfaae882%2Fimage%20(25).png?alt=media" alt=""><figcaption><p>Usar una unidad genérica en Soulver X1</p></figcaption></figure>

### **Funciones personalizadas**

**Introducción**

Una función es una frase útil que toma una entrada y devuelve una salida. En Soulver X1, puedes usar (casi) cualquier sintaxis para una función, incluyendo:

C-style: `doSomething(123)`

Swift-style: `doSomething(with: 123)`

Lenguaje natural: `hacer algo con 123`

**Para crear una nueva función personalizada (en el encabezado)**

* Haz clic en `Define New` > `Function`

**Elegir un nombre de función:**

<figure><img src="https://1876226858-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcMcpZvntkQBMzj3rnk9%2Fuploads%2Fgit-blob-4b060c40b4ae5bcd048c05295ae1045154ab2c88%2Fimage%20(26).png?alt=media" alt=""><figcaption><p>Declarar una nueva función en Soulver X1</p></figcaption></figure>

* Define tu función usando un ejemplo de cómo podrías usar la función en la práctica.
* Elige cualquier parámetro (siempre que coincida con el "tipo" de parámetro que esperas para tu implementación, como dinero, tiempo, números decimales simples, etc).

**Implementar su función:**

<figure><img src="https://1876226858-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcMcpZvntkQBMzj3rnk9%2Fuploads%2Fgit-blob-3d3e341f5a7015c9f27dde167fe2f055c523e87c%2Fimage%20(27).png?alt=media" alt=""><figcaption><p>Escribir una función para calcular cuánto impuesto sobre las ventas hay en una cantidad determinada</p></figcaption></figure>

* Implementa la función en una hoja dedicada de Soulver. Cualquier parámetro se inyectará como tokens amarillos.
* Pasa el ratón sobre un token de parámetro para ver a qué parámetro se refiere en la declaración.
* La última línea de la hoja de implementación se devolverá como el valor final de la función.

**Usar su función**

<figure><img src="https://1876226858-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcMcpZvntkQBMzj3rnk9%2Fuploads%2Fgit-blob-68a53ef1a1ce4da9232758a4c220e300e87372b3%2Fimage%20(28).png?alt=media" alt=""><figcaption></figcaption></figure>

Usa tu función con otros valores de entrada en todas tus hojas

### **Valores web (conexión a APIs JSON)**

#### **Para crear un nuevo valor web (en el encabezado)**

* Haz clic en `Define New` > `Web Value`

#### **Para conectarse a un punto de datos específico en un feed de datos JSON**

<figure><img src="https://1876226858-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcMcpZvntkQBMzj3rnk9%2Fuploads%2Fgit-blob-b9ad4175540422e52601007dcb6ab9a9f4c4ec22%2Fimage%20(29).png?alt=media" alt=""><figcaption><p>Conectarse a un feed de datos remoto en Soulver X1</p></figcaption></figure>

* Pega una URL a un feed de datos JSON, y luego simplemente haz clic en el punto de datos al que deseas conectarte

#### **Usar un valor web**

* A tu valor web se le asignará un nombre de variable (por defecto, coincidiendo con su descripción en el feed JSON)
* Estás libre de cambiar el nombre de la variable por otro.

#### **Actualizar un valor web**

* Tu valor web se actualizará automáticamente en segundo plano con la frecuencia que especificaste durante la configuración.

#### **Editar un valor web**

* Haz doble clic en el token de valor web amarillo en el encabezado para especificar un punto de datos diferente, o cambiar la frecuencia de actualización.

## Tipo de archivo de la Serie Soulver X

{% hint style="warning" %}
Las aplicaciones de la serie Soulver X utilizan un tipo de documento diferente (.slvrx) al de Soulver.

Esto es para soportar las nuevas características que estamos construyendo y experimentando.

Los archivos Soulver X (.slvrx) no pueden ser editados por Soulver 3 para Mac, iOS & iPad.
{% endhint %}
