Все статьи

Разница между типами расширений file, work_dir и app

В предыдущей статье мы описали как сделать простое расширение которое интерпретирует файл (в том случае мы добавили возможность приложению открывать файлы .gltf, .dae и .obj). 

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

В платформе на данный момент реализовано 3 типа расширений - File, WorkDir и App. Давайте с каждым из них разберемся подробнее.

File

Это самый простой и понятный тип.

Файл это набор байт который мы можем прочитать различными программами на ПК. Например у нас есть файл index.html, как разработчик я могу открыть его с помощью своего IDE (например Visual Studio Code или WebStorm), но в операционной системе есть текстовые редакторы которые которые также смогут открыть такой файл. На OSX это может быть pages в Windows можно воспользоваться блокнотом. Если у вас установлен офисный пакет например Microsoft Office или LibreOffice этот файл можно открыть с помощью программы Word.

Также и наши расширения с типом file не привязаны к какому-то конкретному расширению или типу файла. С помощью настроек в config.json вы можете задать какие типы файлов по умолчанию сможет открывать ваше расширение. 

{
    "file": {
        "ext": [".html", "htmlx"]
    }
}

По мимо этого вы можете задать в каком режиме оно будет работать: чтение (read), редактирование (write), редактирование и чтение (read_and_write)

{
    "mode": "read_and_write"
}

WorkDir

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

Он по умолчанию работает на чтение и редактирование. 

С помощью таких расширений можно создавать целые приложения которые будут манипулировать своей структурой файлов. Идеально подойдет для всевозможных дашбордов, списков задач или например wiki документации.

App

Особый тип расширения, он не связан с файловым хранилищем, такое расширение встраивается в общее меню и открывается вне редактора. Также им нельзя поделится с внешними пользователя.

С помощью app можно создавать расширения которые могут взаимодействовать не только с внутреним API платформы, но и подключать внешние сервисы добавив например в настройки подключение через HTTP Proxy.

На сайте осуществляется обработка пользовательских данных с использованием Cookie в соответствии с
Политикой конфиденциальности и обработки персональных данных.
Вы можете запретить сохранение Cookie в настройках своего браузера.