Jump to content


Photo

SQF для VS Code


  • Please log in to reply
27 replies to this topic

#1 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 posts
  • Откуда:Кострома

Posted 23 July 2018 - 01:31

Выкладываю тут свою версию SQF для VS Code, ибо единственный существующий SQF для него, ИМХО, не очень. Может кому-нибудь тоже пригодиться

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание


Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание



Особенности:
  • Препроцессор
  • Подсветка устаревших команд и функций
  • Подсветка некоторых ошибок
  • Подсветка имен зарезервированных разработчиками и некоторыми популярными модами
  • Отдельная подсветка зарезервированных имен, которые совпадают с существующими функциями и переменными
  • Небольшая библиотека сниппетов (xor, if-else, do-while, compile и т. д.)
  • 3 темы на выбор: темная, светлая и контрастная (Черная)
Планируется:
  • Синтаксис для config.cpp/extension.ext
  • Синтаксис для SQS
  • Отдельная подсветка макросов и их аргументов
  • Проверка синтаксиса (Операнды, правильная последовательность символов, отсутствия вложенных #if)
  • Поддержка версии SQF из других частей ArmA, OFP и Take on Helicopters (Сейчас только ArmA 3)
  • Описание и автодополнение команд
  • Пополнение списка зарезервированных имен, вместе со списком функций и переменных
PS Предлагайте свои идея, а я пока изучаю regex и js применительно к VS Code
  • 2

#2 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 posts
  • Откуда:РФ

Posted 23 July 2018 - 01:44

Мне вот интересно, в чём смысл всей этой песни, я имею в виду нафига костыли ещё и поверх скриптовых команд, или я чего то не понимаю?


  • 0

#3 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 posts
  • Откуда:Кострома

Posted 23 July 2018 - 01:53

SteelRat, да это чисто для удобства, делал изначально для себя т. к. для VS Code единственный вариант для меня не подходил, но потом подумал, почему не выложить, может кому-нибудь еще пригодиться
Мне нужно чисто для проверки написанного мною, а то Арма иногда такое выдает если ошибку допустил, но чаще вообще ничего не видает (Особенно при работе с препроцессором) и тогда сиди часами гадай что не так
Ну и плюс тренировка в регулярных выражениях на практике так сказать :)
  • 0

#4 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 posts
  • Откуда:РФ

Posted 23 July 2018 - 12:36

Э) Сори, я кое с чем другим перепутал)


  • 0

#5 OFFLINE   ReXcOr

ReXcOr

    Ст.сержант

  • Пользователи
  • 264 posts
  • Откуда:Moscow

Posted 24 July 2018 - 11:59

Полезно, спасибо)
  • 0

#6 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 posts
  • Откуда:Кострома

Posted 24 July 2018 - 22:10

v0.6.0
+ Добавлена поддержка конфига армы для файлов:

config.cpp
description.ext
missin.sqm
*.hpp
*.inc

+ Уникальные имена для сниппетов SQF
+ Сниппеты для конфига армы

Edited by vlad333000, 24 July 2018 - 22:11.

  • 2

#7 OFFLINE   NoNameUltima

NoNameUltima

    Сержант

  • Пользователи
  • 189 posts
  • Откуда:SPB

Posted 24 July 2018 - 23:05

Для Embercadero studio бы_)


  • 0

#8 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 posts
  • Откуда:Кострома

Posted 24 July 2018 - 23:23

NoNameUltima, спасибо, но даже пытаться это делать не буду для какого-то не очень распространенного недо-клона Visual Studio за 300+к на пользователя.
PS Что вы там забыли с SQF?

Edited by vlad333000, 24 July 2018 - 23:28.

  • 0

#9 OFFLINE   NoNameUltima

NoNameUltima

    Сержант

  • Пользователи
  • 189 posts
  • Откуда:SPB

Posted 24 July 2018 - 23:34


PS Что вы там забыли с SQF?

 

Да тоже, что и в VS, с SQF

Эмбер стоит, визуалку снес давно... недружественна она имхо.

 


какого-то не очень распространенного недо-клона Visual Studio

Оо.... я тут даже и не знаю, что ответить)) Ну хотя, как сказал один человек, - "я не знаю зачем в самолете столько кнопок, но всеж он быстрее чем велосипед")


  • 0

#10 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 posts
  • Откуда:Кострома

Posted 24 July 2018 - 23:43

NoNameUltima, во-первых, на кой хрен вам полноценная IDE для разработки скриптов под Арму? У вас что ли есть компилятора/интерпретатора SQF? Дебагер для него?
во-вторых, хз, чем ва мне дружественная VS, да не одну кнопку нажать, но это только потому, что VS - очень мощный инструмент, рассчитанный на серьезное программирование на C++/C# и т. д.
в-третьих, вот праивльная фраза в данном случае: «зачем мне самолет, когда на автомобиле проще доехать до ближайшего магазина»

Edited by vlad333000, 24 July 2018 - 23:43.

  • 0

#11 OFFLINE   NoNameUltima

NoNameUltima

    Сержант

  • Пользователи
  • 189 posts
  • Откуда:SPB

Posted 25 July 2018 - 00:22


NoNameUltima, во-первых, на кой хрен вам полноценная IDE для разработки скриптов под Арму? У вас что ли есть компилятора/интерпретатора SQF? Дебагер для него?

Нету, но удобно было бы синтаксис видеть без установки доп. ПО, в привычной среде.


да не одну кнопку нажать, но это только потому, что VS - очень мощный инструмент, рассчитанный на серьезное программирование на C++/C# и т. д.

Это спорное утверждение, и далеко может завести...


  • 0

#12 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 posts
  • Откуда:Кострома

Posted 25 July 2018 - 00:28

NoNameUltima, вы будете спорить о том, что Visual Studio это крайне мощный инструмент? Если это не так, то что она забыла в топ-3 IDE?
  • 0

#13 OFFLINE   NoNameUltima

NoNameUltima

    Сержант

  • Пользователи
  • 189 posts
  • Откуда:SPB

Posted 25 July 2018 - 02:20

NoNameUltima, вы будете спорить о том, что Visual Studio это крайне мощный инструмент? Если это не так, то что она забыла в топ-3 IDE?

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

Но как и выше - спорить не вижу смысла - холивар.


  • 0

#14 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 posts
  • Откуда:Кострома

Posted 05 August 2018 - 03:02

v0.7.0

+ Добавлена команда delete в arma-cfg

+ Добавлены команды препроцессора __EVAL и __EXEC в arma-cfg

* Поправлены имена файлов, для которых по умолчанию будет использоваться язык arma-cfg

* Небольшие изменения в цветах dark темы

* Переработаны регулярные выражения для arma-cfg и препроцессора в sqf

 

v0.7.1

+ Команды и переменные для версии v1.84


Edited by vlad333000, 05 August 2018 - 03:30.

  • 1

#15 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1844 posts

Posted 05 August 2018 - 11:36

vlad333000, у меня почему-то выглядит так:

Attached File  01.png   6.44KB   0 downloads

То есть директивы препроцессора всегда синие, а команды -- белые.

Также заметил, что если команду полностью не напечатать (например, "exitWi"), то цвет текста будет голубым, но как только команду полностью напечатаешь, то он станет белым.


Edited by Schatten, 05 August 2018 - 12:04.

  • 0

#16 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 posts
  • Откуда:Кострома

Posted 05 August 2018 - 13:07

Schatten, ты используешь стандартную цветовую тему, и т. к. я решил использовать для комманд scope "keyword.operatop.word", то у тебя команды все белые. Либо ручками выставь для этого скопа в настройках любой понравившийся цвет, либо выбери тему "[SQF] Dark" (Все другие языки остануться такими же, изменятся только цвета для SQF и arma-cfg). То, что до полного ввода команды - они другого цвета, это потому что до этого они переменными считаются, а не командами

PS Когда включишь, отпишись как тебе тема, я старался максимально различить разные объекты, и возможно выбрал упоротые цвета для некоторых объектов :D

Edited by vlad333000, 05 August 2018 - 13:27.

  • 0

#17 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 posts
  • Откуда:РФ

Posted 05 August 2018 - 14:34

Может я особенный, но разноцветность в коде, лично меня, постоянно дизориентирует).

Для себя вижу оптимальным подобное

Attached File  screenday_01.png   198KB   0 downloads

 

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


  • 0

#18 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 posts
  • Откуда:Кострома

Posted 05 August 2018 - 14:45

SteelRat, ааааааа, светлая тема!!!!! xD
  • 0

#19 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1844 posts

Posted 05 August 2018 - 16:53

vlad333000, теперь выглядит так:
Attached File  01.png   10.63KB   0 downloads
По-моему, переключать тему, чтобы текст поменял цвет, -- плохая идея. Также считаю, что названия команд и значений директив слишком тёмные на тёмной теме. Да и я бы не стал различать по цвету какая переменная -- локальная или глобальная.
 
Кстати, судя по картинкам в Marketplace, расширение выделяет разными цветами локальные и глобальные переменные, но у меня нет. Снова надо что-то сделать?


  • 0

#20 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 posts
  • Откуда:Кострома

Posted 05 August 2018 - 17:00

Schatten, ну у вас даже на картинке видно что _path (Приватная) и SCH_var_serverFolder (Глобальная) - разного цвета :)
Какой по вашему мнению будет лучший цвет для команд и значение макросов? У меня после работы с регулярными выражениями для этой штуки уже глаза замылились, тяжело подобрать хорошие цвета для каждого объекта
PS Можно конечно попробовать подогнать скопы под стандартную тему, но возможно их смысл поломается :) еще попробую поискать, может есть команды для того, что бы автоматически включить тему для языка... только начинаю в этой штуке разбираться
  • 0




Яндекс.Метрика