> 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/ru/eksperimentalnye/x.md).

# Soulver X Series

## Что такое Soulver X Series?

В 2024 году мы начали многолетний проект НИОКР, миссия которого заключается в следующем:

* Изучение крутых новых идей для Soulver
* Поиск новых форм и новых рабочих процессов
* Смелое движение туда, куда никогда не доходил блокнотный калькулятор 🖖

Мы планируем выпускать новую основную версию серии X каждый год.

### Спонсорство Soulver X Series

Если вы давний пользователь (или большой фанат Soulver) и воодушевлены этой работой, вы можете рассмотреть возможность [спонсирования нашей миссии на GitHub](https://soulver.app/sponsor).

Кроме того, в качестве спонсора вы получите доступ к последнему прототипу серии X (X3, X4 и т. д.) с функциями, невиданными ранее в области блокнотных калькуляторов.

Наша (очень) небольшая команда была бы признательна за поддержку, и мы смогли бы направить больше ресурсов на такие передовые исследования и разработки блокнотных калькуляторов.

## Soulver X2 (2025)

### Подлисты (Subsheets)

* Подлист — это отдельный лист, который существует внутри одного токена.
  * Создайте подлист с помощью кнопки + в панели вкладок.
  * Дважды щелкните по фиолетовому токену, чтобы открыть редактор подлиста.
* Подлисты могут ссылаться на переменные из родительского листа (при условии, что переменные объявлены выше строки подлиста).

### Токены-ползунки с диапазонами (Slider Tokens with Ranges)

* Токен-ползунок позволяет указать диапазон для прокручиваемого ползунка
  * Создайте ползунок с помощью кнопки + в панели вкладок.
  * Дважды щелкните по зеленому токену, чтобы открыть всплывающее окно ползунка.

### Разделительные линии (Divider Lines)

* Напечатайте дефис (-) три раза, чтобы вставить разделительную линию.
* Используйте разделительные линии для создания большей визуальнойseparation между различными частями вашего листа.

## Soulver X1 (2024)

X1 включает реализации самых востребованных функций Soulver, включая:

* [Поддержку пользовательских функций](https://soulver.app/feedback) (*включая* *функции естественного языка*)
* [Обмен переменными между листами](https://soulver.app/feedback) (*через новый лист "заголовок"*)
* [Подключение к Web API](https://soulver.app/feedback) (*просто вставить и пара кликов*)

### Вкладки (Tabs)

<figure><img src="/files/8pGWg5pcJUH1P0SjeDF4" alt=""><figcaption><p>Несколько вкладок в Soulver X1</p></figcaption></figure>

Документы в Soulver X1 начинаются с одной вкладки, и вы можете добавить больше, нажав кнопку + справа в панели вкладок.

**Переименование вкладок**

Дважды щелкните по заголовку вкладки, чтобы дать ей альтернативное имя. Альтернативно, нажмите Control+клик на вкладку и выберите «Переименовать».

**Удаление вкладок**

Наведите курсор на вкладку и нажмите кнопку x, чтобы удалить. Альтернативно, нажмите Control+клик на вкладку и выберите «Удалить».

{% hint style="warning" %}
Вкладки — это функция в процессе разработки.

Вы пока не можете изменять порядок вкладок, и добавление слишком большого количества вкладок в один документ работает некорректно.
{% endhint %}

### Лист заголовка (The header sheet)

Заголовок — это специальный лист для определения переменных, единиц, функций и веб-значений, которые могут использоваться во всех вкладках вашего документа.

<figure><img src="/files/mQtVbpaukYW6wJ2yhsDp" alt="" width="375"><figcaption></figcaption></figure>

### **Переменные между вкладками**

Объявляйте переменные для вашего документа в заголовке так же, как вы объявляли бы локальные переменные.

Например:

```
my variable = 123
```

`my variable` будет доступен во всех ваших листах

{% hint style="info" %}
Ваши вкладки могут ссылаться только на переменные, но не могут изменять их определение таким образом, чтобы это повлияло на другие листы в документе.
{% endhint %}

### **Эквивалентные единицы (Equivalence units)**

Эквивалентная единица определяется на основе существующей единицы.

Определите новую эквивалентную единицу в заголовке, используя (например):

```
1 watermelon = 10 lb
```

<figure><img src="/files/LMhUtX9JAshJM4L2s9OI" alt=""><figcaption><p>Объявление новой единицы массы в Soulver X1</p></figcaption></figure>

Теперь `watermelon` может использоваться как единица массы во всех ваших вкладках.

<figure><img src="/files/MBBMST7wwTBnZYbpr6se" alt=""><figcaption><p>Использование пользовательской эквивалентной единицы в Soulver X1</p></figcaption></figure>

{% hint style="info" %}
Soulver X1 автоматически переводит ваше новое название единицы во множественное число (на английском языке).

Таким образом, в этом примере как "watermelons", так и "watermelon" будут распознаны как допустимое название единицы, даже если определение было "watermelon".
{% endhint %}

### **Общие единицы (Generic units)**

Эквивалентная единица — это совершенно новый тип единицы, который не определяется на основе существующей единицы.

Определите новую общую единицу в заголовке, используя (например):

```
operation = new unit
```

<figure><img src="/files/y9TclnEwn6oXpz7DxTtc" alt=""><figcaption><p>Объявление общего типа единицы в Soulver X1</p></figcaption></figure>

Единицу `operation` теперь можно использовать во всех ваших вкладках (включая в расчетах ставок):

<figure><img src="/files/EvqsYVp9rfTjoSNwfom7" alt=""><figcaption><p>Использование общей единицы в Soulver X1</p></figcaption></figure>

### **Пользовательские функции (Custom functions)**

**Введение**

Функция — это удобная фраза, которая принимает входные данные и возвращает выходные. В Soulver X1 вы можете использовать (почти) любой синтаксис для функции, включая:

C-стиль: `doSomething(123)`

Swift-стиль: `doSomething(with: 123)`

Естественный язык: `do something with 123`

**Создание новой пользовательской функции (в заголовке)**

* Нажмите `Define New` > `Function`

**Выбор имени функции:**

<figure><img src="/files/riTXUZg9ZMaGvrrk85mJ" alt=""><figcaption><p>Объявление новой функции в Soulver X1</p></figcaption></figure>

* Определите вашу функцию, используя пример того, как вы могли бы использовать эту функцию на практике.
* Выберите любые параметры (при условии, что они соответствуют "типу" параметра, который вы ожидаете для своей реализации, например, деньги, время, обычные десятичные числа и т. д.).

**Реализация вашей функции:**

<figure><img src="/files/4hTFGqgP0dsueEOMGHkr" alt=""><figcaption><p>Написание функции для расчета суммы налога с продаж на определенную сумму</p></figcaption></figure>

* Реализуйте функцию на выделенном листе Soulver. Любые параметры будут внедрены в виде желтых токенов.
* Наведите курсор на токен параметра, чтобы увидеть, на какой параметр он ссылается в объявлении.
* Последняя строка листа реализации будет возвращена как конечное значение функции.

**Использование вашей функции**

<figure><img src="/files/UpDgLKBOzFoInxi9dQ9o" alt=""><figcaption></figcaption></figure>

Используйте вашу функцию с другими входными значениями во всех ваших листах

### **Веб-значения (подключение к JSON API)**

#### **Создание нового веб-значения (в заголовке)**

* Нажмите `Define New` > `Web Value`

#### **Подключение к определенной точке данных в потоке данных JSON**

<figure><img src="/files/q34Y8Chud2FrmlAhjTSX" alt=""><figcaption><p>Подключение к удаленному потоку данных в Soulver X1</p></figcaption></figure>

* Вставьте URL потока данных JSON, а затем просто нажмите на точку данных, к которой вы хотите подключиться.

#### **Использование веб-значения**

* Вашему веб-значению будет присвоено имя переменной (по умолчанию, соответствующее его описанию в потоке JSON)
* Вы можете изменить имя переменной на любое другое.

#### **Обновление веб-значения**

* Ваше веб-значение будет автоматически обновляться в фоновом режиме с частотой, которую вы указали при настройке.

#### **Редактирование веб-значения**

* Дважды щелкните по желтому токену веб-значения в заголовке, чтобы указать другую точку данных или изменить частоту обновления.

## Тип файла Soulver X Series

{% hint style="warning" %}
Приложения серии Soulver X используют другой тип документа (.slvrx) по сравнению с Soulver.

Это сделано для поддержки новых функций, которые мы создаем и с которыми экспериментируем.

Файлы Soulver X (.slvrx) не могут быть отредактированы в Soulver 3 для Mac, iOS и iPad.
{% endhint %}
