<div align="center">
  <h1>Unislate</h1>
  
  [![Build Status](https://img.shields.io/badge/build-passing-brightgreen.svg)](#)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](#)
  [![Version](https://img.shields.io/badge/version-0.1.5-blue.svg)](#)
  [![Contributions Welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg)](#)
</div>

---

## О проекте

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

---

## Особенности

- **Подсветка синтаксиса:**  
  Поддержка множества языков, включая:
  - **Python**
  - **JavaScript, TypeScript, JSX, TSX**
  - **C/C++**
  - **Java**
  - **Markdown**  
  А также базовая подсветка для других текстовых форматов (HTML, CSS, JSON, XML, и пр.).

- **Удобное редактирование:**  
  - Ввод символов, удаление (Backspace), создание новой строки (Enter) с сохранением отступов.
  - Вставка табуляции (4 пробела) через клавишу Tab.

- **Выделение текста:**  
  Используйте комбинацию **Shift + стрелки** для выделения фрагментов текста.

- **Буфер обмена:**  
  - **Копирование:** `Ctrl+C` – копирует выделенный текст (или текущую строку, если выделение отсутствует).
  - **Вырезание:** `Ctrl+X` – удаляет выделенный текст (или строку, если выделение отсутствует).
  - **Вставка:** `Ctrl+V` – вставляет содержимое буфера обмена.  

- **Отмена и повтор действий:**  
  - **Отмена:** `Ctrl+Z` – шаг назад.
  - **Повтор:** `Ctrl+Y` – восстановление отменённого действия.

- **Строка состояния:**  
  В нижней части экрана выводится информация о файле (имя, статус «новый», если файл ещё не сохранён), текущей строке и позиции курсора.

---

## Установка

### Требования

- Python 3.6+
- Терминал, поддерживающий ANSI-цвета и символы Unicode

### Установка из исходников

1. **Установка пакета:**

   ```bash
   pip install unislate
   ```

2. **Запуск редактора:**

   ```bash
   unislate [имя_файла]
   ```

   Если имя файла не указано, сначала будет показан приветственный экран, после чего создастся новый файл.

---

## Использование

- **Навигация по тексту:**  
  Используйте стрелки для перемещения курсора по файлу.

- **Редактирование:**  
  Просто вводите символы для изменения строки. Для удаления символов используйте Backspace.

- **Новая строка:**  
  Нажмите Enter для перехода на новую строку. Отступ предыдущей строки автоматически сохраняется.

- **Вставка табуляции:**  
  Нажмите Tab для добавления отступа (4 пробела).

- **Выделение текста:**  
  Для выделения текста зажимайте Shift и используйте стрелки.

- **Копирование и вырезание:**  
  - `Ctrl+C` – копирует выделенный текст или текущую строку.
  - `Ctrl+X` – вырезает выделенный текст или текущую строку.

- **Вставка:**  
  `Ctrl+V` – вставляет содержимое буфера обмена (системного, если установлен pyperclip, или внутреннего).

- **Отмена/Повтор:**  
  - `Ctrl+Z` – отменяет последнее изменение.
  - `Ctrl+Y` – повторяет отменённое действие.

- **Сохранение файла:**  
  `Ctrl+S` – сохраняет изменения. Если файл новый, редактор предложит ввести имя.

- **Выход из редактора:**  
  `Ctrl+Q` – выход из программы. При наличии несохранённых изменений появится запрос на подтверждение выхода без сохранения.

---

## Вклад

Мы рады любым идеям и улучшениям!

1. **Форкните** репозиторий.
2. Создайте новую **ветку** (например, `git checkout -b feature/YourFeature`).
3. **Закоммитьте** изменения (например, `git commit -m 'Добавить новую функцию'`).
4. **Запушьте** ветку (`git push origin feature/YourFeature`).
5. Откройте **Pull Request** для обсуждения и слияния изменений.

---

## Лицензия

Этот проект распространяется под лицензией [MIT License](LICENSE).

---

<div align="center">
  <sub>Сделано с ♥️ от <a href="https://github.com/qwez-source">Qwez</a></sub>
</div>