LINUX.ORG.RU

Формошлёпство на GTK

 , ,


1

1

Господа, я в смятении. Захотелось попробовать пошлёпать формочки на GTK, используя заявленный как полностью готовый GJS, в GNOME Builder, чтобы всё было по красоте. Но чота как-то со старта всё очень странно.

Во-первых, не очень понятно, как это изучать: страничка проекта ведёт на репозиторий в гитлабе, который ссылается на примеры, описание пакета GJS и собственно референс API. Круто, конечно, но даже со сгенеренным скелетом проекта не очень понятно, что делать дальше. Есть сторонний сайт, описывающий написание хелловорлда статейками суммарно на шесть минут вдумчивого чтения. И, собственно всё. На вики GNOME есть ещё какие-то гайды, но они вообще все на си. Я понимаю, что GObject что там, что здесь должен работать одинаково, но может, есть какие-то другие пути?

Во-вторых, в GNOME Builder отсутствует автодополнение. Вообще. Даже банально методы и свойства класса не подсказываются. Ровно как и аргументы, как это бывает в других IDE, подхватывающих JSDoc или декларации Flow/TypeScript. Доступные в зоне видимости идентификаторы – аналогично, что ещё более дико. Из любопытства посмотрел, работает ли оно для Vala. Не работает! Это какой-то прикол? Мне нужно поставить какой-то плагин? Или все пишут в каком-то другом IDE? Или предполагается, что ЦА – это <собачка>Железный_Жук? Подсветка тоже какая-то коцая, как в голых искаробочных мажорных режимах в имаксе. Видел какие-то декларации для TypeScript, но это помимо tsc ещё всю ноду со всей её экосистемой тащить в проект и дружить с meson.

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

Кто винКуда копать? Что делать?

P.S.

Вы не можете создавать новые теги (gjs)

чего??

[UPD] Первый вопрос частично отпадает, потому что я нашёл переделанные в человеческий вид доки, где всё разжёвывается и в читателя не швыряются голыми примерами с выдержками референса API. Частично, потому что там примеры на питоне, но это уже лучше, чем си.

★★★★

Последнее исправление: Princesska (всего исправлений: 1)

Во-вторых, в GNOME Builder отсутствует автодополнение. Вообще.

У меня есть: https://imgur.com/a/tChUzeB

Ставил вот отсюда: https://github.com/benwaffle/vala-language-server

На Manjaro/Arch это ставится так:

yay -S vala-language-server-git

И потом отключал дефолтный плагин vala в GNOME Builder.

Про GJS я не в курсе…

fsb4000 ★★★★★
()
Последнее исправление: fsb4000 (всего исправлений: 1)

Логика такова, смотришь на чужие проеты и учишься по ним. По факту знания как и чего передаются из уст в уста. Короче боль тут на форуме есть несколько больших тредов по этому зашквару. Дада тебе не показалось что всё странно. Оно так и есть. Садомазо в почёте короче.

anonymous
()

ЦА – это <собачка>Железный_Жук?

Если ты про то, что нужен многолетний опыт, а не имитация пррграммирования, то да, ты прав

lx1
()
Ответ на: комментарий от lx1

Я про добровольную работу с кодом в голом текстовом редакторе и великолепные техники запоминания идентификаторов пальцами, но твой посыл понял.

Princesska ★★★★
() автор топика

Но отсутствие примеров и скелетона с внятными объяснениями - это, конечно, косяк разработчиков. То ли им лень было, то ли просто насрать. Или, может, тупо времени нет на то, чтобы для новичков делать нормальные хелпы.

lx1
()
Ответ на: комментарий от fsb4000

Хм, похоже, что через промежуточный плагин это всё же делается. Для раста и валы они написаны, для GJS – кажется, нет.

Princesska ★★★★
() автор топика
Ответ на: комментарий от Princesska

В референсе даже указано в конце: Happy coding! )))

lx1
()
Ответ на: комментарий от unstable-case

Именно на си боли гораздо меньше и всё очевидно в отличии от. Всё API включая референсы и документацию, генератор генерирует, по итогу километры js методов которые пробрасывают значения забинженные внутри сишных либ без каких либо намёков на взаимосвязи. В простых случаях то ещё ладно, а если что-то более менее делать то звезда. Приблатыкаться можно и даже потом станет более менее интуитивно, но в начале будет боль от неочевидности и тупизны подхода к интросекции этой вернее к тому что её жопой, а не лицом повернули к конечному разработчику на gjs при Shell оболочке

anonymous
()
Ответ на: комментарий от lx1

Но отсутствие примеров и скелетона с внятными объяснениями - это, конечно, косяк разработчиков.

для С++ у них книжка есть: https://developer.gnome.org/gtkmm-tutorial/stable/index.html.en

Я по ней осваивал Gtk+.

Хотя по Vala тоже есть примеры: https://wiki.gnome.org/Projects/Vala/GTKSample

fsb4000 ★★★★★
()
Последнее исправление: fsb4000 (всего исправлений: 1)

<собачка>Железный_Жук

Я расшифровал, суровая тётя =)

По теме: просто используй Qt5/6 и стань счастливым

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)

Вы не можете создавать новые теги (gjs)

чего??

Видимо, мало звёзд.

saahriktu ★★★★★
()
Ответ на: комментарий от anonymous

без разницы, так как gtk3 уже устарело, gtk4 на подходе

anonymous
()

Жесткое глюкалово, можешь даже не разбираться. Формошлепить можно в Lazarus.

paramon
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.