Olive ближе, чем когда-либо прежде… Вот некоторые новости о том, что я недавно реализовал!

введение

В последнее время я был в очень маниакальном состоянии, что не обязательно плохо. Это означает, что я тратил практически все свое свободное время на работу; и впоследствии гораздо больше времени было посвящено моим проектам. Самым большим из этих проектов, конечно же, является Olive, мой чистый сервер для ноутбуков Julia, который на данный момент находится в разработке невероятно долго — и, наконец, очень близок к выпуску. Теперь я знаю, что говорил это уже дюжину раз; Я говорил, что мы были на грани релиза еще в октябре, однако с тех пор все в проекте сильно изменилось, так как я хотел улучшить его по сравнению с тем, что было на тот момент. Однако сегодня я очень рад представить вам Olive в ее нынешнем состоянии! Многое было сделано с момента последнего из этих обновлений, и хотя формат контента обновления сообщества (без видео и визуализации отзывов) не соответствует этой новой версии Olive, я думаю, что этот проект в настоящее время невероятно здорово, и вам понравятся новые вещи, которые я должен представить. Когда я говорю «огромный», я имею в виду, что список новых функций огромный. Если вы впервые слышите о проекте или просто хотите проверить проект на Github, вот ссылка на проект:



Без дальнейших церемоний, не теряя времени, давайте перейдем к новым вещам, которые может предложить Olive!

каталоги

Первой функцией в этом списке новых функций является добавление типа ячейки dir. До этого мы не могли по-настоящему исследовать каталоги и были ограничены простым использованием каталога верхнего уровня и ячеек, которые изначально отображались. Это изменилось. Теперь мы можем свободно исследовать подкаталоги и их файлы именно так, как вы ожидаете от стандартного файлового менеджера.

Возможно, вы также заметили новые кнопки над каталогом — я знаю, что в данный момент это выглядит некрасиво, попробуйте и проигнорируйте это — в конечном итоге они будут заменены значками, и эта область будет немного украшена, я просто добавил это в полтора часа назад. Кнопки тоже сейчас особо ничего не делают, но это не беда, реализовать это будет не слишком сложно. Еще одно изменение, которое немного более незаметно, заключается в том, что теперь функции build для них принимают аргумент ключевого слова, exp для каталога и explorer для ячеек — Bool . Этот аргумент определяет, является ли это / или это /session , что довольно хорошо намекает на следующее улучшение, появившееся в Olive. Давайте продолжим и откроем наш файл olive.jl, который также имеет новую и улучшенную программу чтения файлов — так что это хорошо.

Здесь мы тоже видим красивые новые клетки — разве они не чудесны? У них также есть значок загрузки, который появляется, когда они работают, и, что еще лучше, их элементы управления действительно надежны — хотя все еще есть некоторые проблемы, из-за которых ячейки могут выйти из строя, которые мне нужно решить. Кроме того, они чуть меньше окна, потому что оконная система была значительно изменена, чтобы облегчить некоторые другие части этого проекта. Вы также заметите новые вкладки, тоже не совсем завершенные на верхней панели — круто, правда? Откроем проводник проекта.

Как и следовало ожидать, он выглядит примерно так же, однако аргумент ключевого слова explorer изменил ситуацию, и теперь мы можем открыть otherfile.jl вместе с нашим текущим файлом.

Конечно, будут некоторые изменения и улучшения, я, вероятно, добавлю границы и заголовки окон в верхнюю часть окон… Эти заголовки также могут заменить вкладки, я не совсем уверен, что я хочу сделать для этого. . Тем не менее, каждый набор ячеек выполняется индивидуально в своей собственной среде, поэтому мы можем работать с несколькими разными файлами одновременно в одном окне — чего я действительно не видел ни в одном другом подобном редакторе.

клетки

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

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

Вывод теперь включает стандартный вывод, что означает, что вывод таких отпечатков, как println, теперь входит в вывод нашей ячейки, проверьте это:

Я также хотел показать красоту загрузки, я действительно могу это сделать, к счастью, просто запустив что-то, что требует времени для загрузки… Например, Pkg.add.

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

Так что это довольно круто… Мой интернет сейчас работает медленно, так что это займет некоторое время. Кроме того, это Contexts.jl , а не Context.jl — удачи, Pkg. Очевидно, что наши ячейки имеют другую среду, поэтому запуск pshower в моих olive.jl ячейках приведет к неопределенной ошибке. Однако посмотреть на это будет хорошо, так как есть новая печать для исключений (на данный момент довольно стандартная трясина). Я подумываю о создании целой системы, которая помогает разработчикам интерпретировать ошибки и как их исправлять здесь, но я не уверен — если так, то это точно не войдет в первый релиз этой Оливки.

Чтобы показать другое исключение, вот я пытаюсь прочитать каталог чисел с readdir :

настройки

Еще одна вещь, над которой я много работал, — это новый загрузчик настроек и меню настроек. В настоящее время здесь размещаются только привязки клавиш — однако намерение состоит в том, чтобы созданные пользователем (и созданные мной) расширения могли заполнять это большим количеством вещей по мере необходимости. Я рад сообщить, что долгое бездействующая иконка настроек наконец-то что-то делает.

Здесь мы можем настроить наши параметры. Прямо сейчас нет возможности сохранить настройки клиента, но, конечно, это скоро изменится. Я думаю, что я просто хочу, чтобы они сохранялись при закрытии меню настроек. Этот раздел привязок клавиш уже работает, хотя мы уже можем настроить привязки клавиш, и это изменит их действие — но только на вновь созданные ячейки. Ключевые кнопки просты в использовании, просто нажмите их, затем нажмите кнопку… Далее установите флажки. Одна вещь, которая мне не нравится, это то, что флажки shift и ctrl не заполнены, чтобы показать текущую конфигурацию — мда. Я исправлю это позже.

уведомитель

Когда мы перейдем к сохранению привязки клавиш, мы также увидим оливковое уведомление. Это просто панель, которая отправляет сообщения пользователю, всплывает вверху, а затем снова уходит в неизвестность — ничего особенного. Это также может использоваться конечными пользователями и их расширениями для указания различных статусов. Он также используется для обозначения вещей, которые я еще не реализовал. Я постараюсь сделать скриншот этого…

Попался!

И да, над ячейками REPL я особо не работал — но здесь тоже будут ячейки doc! Я также собирался сделать более расширенный браузер документов, но я думаю, что это будет расширение внутри OliveDefaults .



Я тоже решил добавить Contexts не просто так, а также добавил Prrty (пока вы не искали!) не просто так! Я хотел показать, как дела у Prrty… Я добавил метки в сетку и в целом улучшил много вещей — хотя еще многое предстоит сделать… Я в основном просто сделал эти обновления, чтобы использовать их в своем последнем обновлении на ToolipsManager , который, если вы ничего не делаете и хотите узнать больше о моей мании, вы можете прочитать здесь:



В любом случае, взгляните на эту визуализацию Prrty в Olive:

милый.

Ячейки также имеют заданную ширину, поэтому они не занимают все окно — пережиток до реализации окон, поэтому я, конечно, это изменю. Тем не менее, Prrty довольно крут, и я собираюсь сделать с ним гораздо больше в ближайшее время, но это очень сильно — как и большинство вещей — в настоящее время отходит на второй план по сравнению с Olive. Я также хотел отметить, что эти слои являются интроспективными и изменяемыми — это означает, что их можно настроить после рисования, например, с помощью следующего синтаксиса:

style!(l.window[:children]["line"][:children][1], "stroke" => "orange", "stroke-width" => "5")

Очевидно, я хочу упростить доступ к этому, что я и сделаю в конце концов, но зацените нашу новую линейку!

инструменты

Я бы совершил грех, если бы не упомянул здесь еще кое-что о туллипах вдобавок ко всей прочей чепухе. Итак, вкратце, я хочу дать несколько обновлений по пакетам и экосистеме. Первое, что я хотел затронуть, это то, что раздел «расширенных» расширений заполнен…

Я завершил это с помощью ToolipsCrawl , который будет некоторым автоматическим асинхронным веб-сканированием и веб-скрейпингом как для несерверных, так и для серверных приложений. Всех проектов внизу точно не будет в ближайшее время — у меня просто много дел. Рад сообщить, что эти 16 (что со мной не так?) расширений станут концом пути расширения Toolips — по крайней мере, для меня я себя ограничиваю и больше не творю. Мне уже нужно нажимать постоянные обновления до 16, этого достаточно, мне не нужно умирать от бледности и тоннеля плодолистика до того, как мне исполнится 25. Во всяком случае, ToolipsManager тоже будет какое-то время, так как он потребует выпуска базы Prrty, чтобы функционировать — я говорю, что это будет какое-то время, но на самом деле не так долго, но определенно после Оливки 0.1.0. Я также должен сказать, что не знаю, собираюсь ли я снова сломать туллипы, кажется, в его нынешнем виде он работает потрясающе. В Toolips, ToolipsSession и ToolipsDefaults также ожидаются важные обновления, которые появятся раньше, чем Olive, потому что Olive полагается на них. Так или иначе, я хотел привести в порядок свои общие планы по выпуску невыпущенных расширений…

  • ToolipsUploader
  • ToolipsManager
  • ToolipsCrawl
  • ИнструментыORM
  • ToolipsUDP
  • ИнструментыAV

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

  • Подсказки 0.2.4
  • ToolipsSession 0.3.1
  • Подсказки по умолчанию 0.1.1
  • ToolipsAuth 0.1.2

Кроме этого, на самом деле не будет слишком многого. Я также хочу затронуть тот факт, что ToolipsExport практически полностью сломан — покойся с миром. Что действительно сломало это, так это несовместимость версий с Blink и Toolips — я думаю, что это происходит от Sockets, но это похоже на зависимость от зависимости, которая вызывает проблему, поэтому ее, безусловно, очень раздражает отслеживать — и если это в конечном итоге будет исправлено, это будет исправлено в Toolips 0.2.5 , так что на данный момент это, безусловно, не в центре внимания. Недостаток ToolipsExport, тот факт, что вы не можете действительно эффективно перемещать приложения, насколько я знаю, также означает, что я в некоторой степени согласен с этим; по крайней мере на данный момент. Тем не менее, я могу попасть туда и сделать то, что должен сделать довольно скоро, так что посмотрим.

Так что еще многое предстоит сделать, но я думаю, должно быть довольно очевидно, что это очень близко к тому, что мне нужно для релиза. Я планирую разместить версию 0.0.9 в реестре Julia в качестве релиз-кандидата, и это произойдет где-то в течение следующих двух недель или около того, в зависимости от того, насколько мучительной будет подсветка синтаксиса. В целом, я очень взволнован этим! Любая обратная связь приветствуется. Если вы хотите попробовать Olive, не надо… Я немного шучу, но прямо сейчас вы попадете в ад зависимости, если попытаетесь, поэтому определенно имеет смысл просто подождать несколько недель, если вы этого не сделаете. намереваетесь работать над проектом самостоятельно. Конечный результат определенно будет очень крутым!

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

Спасибо, что прочитали, я надеюсь скоро выпустить Olive, всем прекрасного дня!