Документация по SourceMod на форуме

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #1
Есть идея впилить документацию по SourcePawn API на форуме, вынеся в отдельную вкладочку. При этом:
  1. Реализовать комментарии к функциям/энумам/инклудам/методмапам.
  2. В отличие от официальной доки, строить дерево наследования для методмапов и показывать все методы (у всех хендлов, например, есть метод Close(), который работает как CloseHandle()).
  3. Интегрировать с форумом. Добавить в редакторе кнопку, которая позволит сослаться на метод в документации.
  4. Инклуды для плагинов от сообщества (?), по типу VIP Core от Рико или Шоп от Фроза (но будет конкретно форк).
  5. Интеграция с системой закладок. Речь про эту:
    1592350834323.png
Что-то уже сделано:
1592350622153.png1592350563552.png

Выкладываю эту тему в веб-разработке на обсудить пока.
 

Young <

Now, finally free
Сообщения
1,263
Реакции
505
Я думаю мб еще создать базу инклюдов, чтобы не бегать по интернету, когда нужен определенный инк.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
Моё мнение ты знаешь.
 

Саша Шеин

Кому костылей?
Сообщения
1,697
Реакции
621
Предлагаю кроме всего перечисленного, сделать документацию по правильному документированию inc , так чтобы не было проблем с обработкой.

А также сделать несколько веток, для sm < 1.7 и для sm > 1.9 , хотя не знаю, много ли здесь людей нуждаются в старой версии синтаксиса.
Но многие используемые инклюды приходится переделывать со старого синтаксиса.

А также, если пользователь размещает в ресурсах ядро плагина или плагин в котором есть нативы / форварды добавить возможность отдельно загрузить inc или же описание функций. Но лучше inc чтобы в последствии была возможность скачать нужный inc без всего остального. Например удобно будет иметь какой-то раздел в описании ресурса, где нажал кнопочку и тебя перекинула на нужный inc с описанием функций и кнопкой скачать. (Если плагин использует сторонние библиотеки, то часто приходится искать их самому)
 
Последнее редактирование:

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #5
А также, если пользователь размещает в ресурсах ядро плагина или плагин в котором есть нативы / форварды добавить возможность отдельно загрузить inc или же описание функций.
А тут сложно, ибо каждый ведёт архивы так, как ему удобно. Плюс не все загружают архивы на форум, кто-то ссылкой указывает.
 

Саша Шеин

Кому костылей?
Сообщения
1,697
Реакции
621
А тут сложно, ибо каждый ведёт архивы так, как ему удобно. Плюс не все загружают архивы на форум, кто-то ссылкой указывает.
@Kruzya, про архив согласен, но я имел ввиду, добавить новое поле для загрузки .inc , как и написал @NaN

можно вручную сделать загрузку .inc
 
  • Мне нравится
Реакции: NaN

NaN

FPE_INTDIV_TRAP
Сообщения
1,513
Реакции
1,487
Главное всем подряд такие права не давать и все будет нормально.
 

Саша Шеин

Кому костылей?
Сообщения
1,697
Реакции
621
Кстати, как вариант можно сделать генератор inc, т.е. интерфейс для шаблонного заполнения описания, который будет помогать составить inc корректно
Сообщения автоматически склеены:

Главное всем подряд такие права не давать и все будет нормально.
Думаю можно сделать с модерированием, как у ресурсов, т.е. пока ресурс не одобрен - inc не загрузится и не обработается. И последующие обновления inc тоже модерировать
 

dvernoff

Добрая душа
Сообщения
638
Реакции
591
Прикольно, несомненно жду релиза.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #11
можно вручную сделать загрузку .inc
Тогда придётся и архивы, всё же, частично саппортить в этом поле, ибо есть плагины по типу Шопа от Фроза, где инклуда не одна, а несколько, да ещё и в папке часть.

А мне кажется всё же более правильным решением не добавлять сразу инклуду в доку. Только спустя какое-то время, и по запросу к администрации. Прогон парсера сейчас - операция не быстрая. Я использую за основу официальный парсер инклуд SourcePawn, который написан на Си, и чтобы не ломать политику безопасности о "запрете запуска исполняемых файлов через PHP", поднят небольшой HTTP-сервис, написанный на ноде, который берёт на вход инклуду, а в ответ отдаёт модифицированный результат прогона докпарсера над ним (добавляется распарсенная дока).
1592384773318.png

Репозиторий инклуд-файлов - да, было бы неплохо. Его даже придётся делать, поскольку в админке сейчас при добавлении инклуд-файла нужно указать адрес, откуда брать файл.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #12
Может в конце недели раскатаю тестовую версию здесь, и дам доступ ограниченному кругу лиц для комментариев. К тому моменту скорее всего закончу реализацию вывода всех данных, которые только докген сейчас мне отдаёт.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #13
Запилил вывод методов и свойств у методмап. Вместо классического отображения "как в официальной доке", запилил вкладочками.
1592432537511.png
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #14
Установлено, закладка должна была появиться в верхнем навбаре у тех, у кого имеется возможность публиковать ресурсы без премодерации (почти, но это отдельная история) и у модераторов.
Текущие известные недостатки, которые будут исправляться в течение ближайшей недели (или больше):
  • Английский язык в дополнении.
  • Отсутствие ссылок на типы данных в таблице аргументов у функций.
  • Нормальный шаблон для тайпсетов.
Так же планируется:
  • Сделать бб-код с виджетом, который позволит прямо в сообщении сослаться на интересуемый метод/форвард.
  • Закладки для свойств.
Если что-то будет обнаружено - лучше писать не в данной теме, а в "баг-трекере": XF-SPApiDoc-BugTracker
Регистрация доступна.
 
Последнее редактирование:

Webman

Nevermind
Сообщения
803
Реакции
330
Можно еще полнотекстовый поиск реализовать (например, Elasticsearch) в реалтайме.
Тот же поиск на alliedmodders работает медленно и неудобно.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #20
Можно еще полнотекстовый поиск реализовать (например, Elasticsearch) в реалтайме.
Там под капотом используется движковый поиск, который сейчас настроен и работает именно на Эластике.
Ну и да, он умеет искать по описанию функции:
1596360217318.png
 
Сверху Снизу