> For the complete documentation index, see [llms.txt](https://docs.eximee.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.eximee.com/budowanie-aplikacji/logika-biznesowa/scriptcode/skrypty-scriptservice/edytor-skryptow.md).

# Edytor skryptów

## Widok skryptu <a href="#edytorskryptow-widokskryptuedycja" id="edytorskryptow-widokskryptuedycja"></a>

W głównym widoku skryptu widoczna jest wybrana wersja skryptu. W panelu bocznym znajdują się przyciski umożliwiające wysunięcie panelu parametrów skryptu, testów jednostkowych oraz logów.

Przycisk uruchomienia skryptu znajduje się w zakładce **Parametry**.

<figure><img src="/files/qwuHElBPjV4ZTEccidar" alt=""><figcaption><p><em><strong>Ilustracja 1.</strong> Widok skryptu z wysuniętym panelem "Parametry"</em></p></figcaption></figure>

## Edycja skryptu <a href="#edytorskryptow-edycjaskryptu" id="edytorskryptow-edycjaskryptu"></a>

Praca nad skryptem możliwa jest dzięki edytorowi Monaco (edytor wspiera język JavaScript).

Początkowo działa on w trybie **read-only**. Aby rozpocząć pracę należy kliknąć przycisk **Edytuj skrypt** znajdujący się na końcu paska nawigacyjnego.

<figure><img src="/files/9LwZLYsyd6DqjErfKwqX" alt=""><figcaption><p><em><strong>Ilustracja 2.</strong> Karta skryptu</em></p></figcaption></figure>

Instrukcja "jak pisać skrypt serwisy" znajduje się w [Skrypty (scriptService)](/budowanie-aplikacji/logika-biznesowa/scriptcode/skrypty-scriptservice.md) oraz [Dobre praktyki ScriptCode](/budowanie-aplikacji/logika-biznesowa/scriptcode/dobre-praktyki-scriptcode.md).

## Zmienne w ScriptCode w zakresie bloku <a href="#edytorskryptow-zmiennewscriptcodewzakresiebloku" id="edytorskryptow-zmiennewscriptcodewzakresiebloku"></a>

Platforma Eximee wymaga, aby zmienne w ScriptCode były zadeklarowane w zakresie bloku.

Brak deklaracji zmiennej spowoduje błąd skryptu.

## Parametry <a href="#edytorskryptow-parametryparametry" id="edytorskryptow-parametryparametry"></a>

Modyfikacja parametrów również odbywa się w Monaco (edytor wspiera notacje JSON).

Przy pierwszym wejściu na niepusty skrypt parametry zostaną automatycznie wydedukowane (jeżeli jest to możliwe) z samej zawartości skryptu.

Pod edytorem znajduje się przycisk pozwalający na uruchomienie skryptu z parametrami podanymi w sekcji **Dane testowe.**

<figure><img src="/files/LASfzHSN7zaW4ubOkVJy" alt=""><figcaption><p><em><strong>Ilustracja 3.</strong> Karta parametrów</em></p></figcaption></figure>

Parametry uzupełnione w sekcji **Dane testowe** nie są częścią samego skryptu i nie zapiszą się w danej jego wersji!

## Edycja wejść/wyjść <a href="#edytorskryptow-edycjawejsc-wyjscio" id="edytorskryptow-edycjawejsc-wyjscio"></a>

W tym miejscu możemy dodać lub usunąć wejścia/wyjścia skrypt serwisu.

Dodanie lub usunięcie wejścia spowoduje również aktualizację parametrów uruchomieniowych, więc po usunięciu parametru stracimy jego ewentualne mapowanie w miejscu podpięcia.

<figure><img src="/files/5JYHVjuguZBBqCUxNOVf" alt=""><figcaption><p><em><strong>Ilustracja 4.</strong> Pola edycji wejść/wyjść</em></p></figcaption></figure>

## Wynik skryptu <a href="#edytorskryptow-wynikskryptuwynik" id="edytorskryptow-wynikskryptuwynik"></a>

W dolnej części ekranu pojawia się dodatkowe okno. Znajdziemy tam wszelkie informacje na temat uruchomionego skryptu:

1. Czas działania skryptu podany w ms.
2. Logi z wykonania skryptu w postaci:

   | `[CZAS_OPERACJI] [TYP_OPERACJI]: Tekst operacji` |
   | ------------------------------------------------ |

   Dla przykładu:

   | `[14:31:22,976] [GET_DATA]: Called getData("GesCustomComponent1","data") and resulted with data z cc` |
   | ----------------------------------------------------------------------------------------------------- |
3. Wynik wołania skryptu (w panelu logów), czyli wszystkie wartości zdefiniowane jako wyjściowe (output) podczas tworzenia skrypt serwisu w postaci KLUCZ : WARTOŚĆ.<br>

   <figure><img src="/files/I0GkigRz1Q48t3dNpRZY" alt=""><figcaption><p><em><strong>Ilustracja 5.</strong> Karta wyniku skryptu</em></p></figcaption></figure>

## Edytor Monaco (skróty klawiszowe)

Edytor użyty w projekcie jest pełnoprawnym edytorem kodu, dzięki czemu oferuje wiele skrótów klawiszowych przyspieszających codzienną pracę.

### Nawigacja i wyszukiwanie

| Skrót                | Opis                                                                |
| -------------------- | ------------------------------------------------------------------- |
| **F1**               | Wyświetlenie listy wszystkich dostępnych poleceń i skrótów edytora. |
| **Ctrl + F**         | Wyszukiwanie tekstu w aktualnym pliku.                              |
| **Ctrl + H**         | Wyszukiwanie i podmiana tekstu.                                     |
| **Ctrl + Shift + O** | Skok do zmiennej lub funkcji.                                       |
| **Ctrl + G**         | Skok do wskazanej linii.                                            |

### Edycja kodu

| Skrót                | Opis                                                                             |
| -------------------- | -------------------------------------------------------------------------------- |
| **Ctrl + Z**         | Cofnięcie ostatniej zmiany.                                                      |
| **Ctrl + Y**         | Ponowienie cofniętej zmiany.                                                     |
| **Ctrl + C**         | Kopiowanie zaznaczonego tekstu.                                                  |
| **Ctrl + V**         | Wklejenie skopiowanego tekstu.                                                   |
| **Ctrl + X**         | Wycięcie zaznaczonego tekstu lub bieżącej linii.                                 |
| **Ctrl + Shift + I** | Formatowanie kodu. Warto korzystać z tej opcji po większych zmianach w skrypcie. |
| **Ctrl + Shift + K** | Usunięcie bieżącej linii.                                                        |
| **Alt + ↑**          | Przeniesienie aktualnej linii o jeden wiersz w górę.                             |
| **Alt + ↓**          | Przeniesienie aktualnej linii o jeden wiersz w dół.                              |

### Wielokrotne kursory i jednoczesna edycja

Edytor Monaco umożliwia jednoczesną edycję wielu miejsc w kodzie. Funkcja jest szczególnie przydatna podczas modyfikacji nazw zmiennych, parametrów lub powtarzających się fragmentów skryptu.

| Skrót                          | Opis                                                                                                                   |
| ------------------------------ | ---------------------------------------------------------------------------------------------------------------------- |
| **Alt + kliknięcie myszy**     | Dodanie dodatkowego kursora w wybranym miejscu.                                                                        |
| **Ctrl + D**                   | Zaznaczenie kolejnego wystąpienia aktualnie zaznaczonego tekstu i dodanie kursora.                                     |
| **Ctrl + Shift + L**           | Zaznaczenie wszystkich wystąpień aktualnie zaznaczonego tekstu i dodanie kursorów we wszystkich miejscach wystąpienia. |
| **Ctrl + F2**                  | Dodanie kursora we wszystkich miejscach wystąpienia aktualnego wyrazu lub zaznaczenia.                                 |
| **Ctrl + Shift + Alt + ↑ / ↓** | Dodanie kursora w linii powyżej lub poniżej aktualnej pozycji kursora.                                                 |

### Dodatkowe funkcje

| Skrót        | Opis                                    |
| ------------ | --------------------------------------- |
| **Ctrl + P** | Eksport dokumentu skryptu do pliku PDF. |

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2CssJT0zIo4SJQLbSZ6l%2Fuploads%2FnQx2uljBANGDZtDDAMdc%2FmonacoShortcut.mp4?alt=media&token=eb66880d-780f-4615-9428-3d6922c09e23>" %}
***Film 1.** Przykładowe użycie skrótu klawiszowego Ctrl + Shift + L w celu jednoczesnej zmiany nazwy wszystkich wystąpień zmiennej*
{% endembed %}

## Testy <a href="#edytorskryptow-testy" id="edytorskryptow-testy"></a>

Edytor posiada możliwość zdefiniowania [scenariuszy testowych](/budowanie-aplikacji/logika-biznesowa/scriptcode/testy-jednostkowe-skryptow.md).

### Błędy w trakcie uruchomienia testowego

Jeśli skrypt zawiera błędy, w trakcie uruchomienia testowego błąd taki zostanie odlogowany w konsoli pod edytorem. W komunikacie zawarty będzie powód i miejsce w kodzie wystąpienia błędu.

<figure><img src="/files/8rVJvSTrZrvqnb1FCokt" alt=""><figcaption><p><em><strong>Ilustracja 6.</strong> Błąd wywołania testowego</em></p></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.eximee.com/budowanie-aplikacji/logika-biznesowa/scriptcode/skrypty-scriptservice/edytor-skryptow.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
