LINUX.ORG.RU

Шаблонорезка С++

 , , , ,


0

4

Всем привет!

Я тут как-то искал какую-нить прогу, которая в CLI-режиме умеет целые проекты создавать, навроде IDE. Не нашел (видимо, плохо искал) и накидал на коленке вот такой велосипед. Баги не исключены.

Пользоваться этим чудом довольно просто:

$ cp ~/projects/dummy ~/projects/myprj
# правим файлик ~/projects/myprj, выставляя основные свойства проекта (умеет пока только cli)
$ cpprj ~/projects/myprj
# переходим в директорию с проектом и накидываем скриптик с архитектурой приложухи из строчек вида:
cclass -dc -dd -dm child par1 par2 par3 -v "int **l; std::string k; struct d r;"
# опции следующие:
# -dd - удалить дефолтный конструктор
# -dc - удалить конструктор копирования
# -dm - удалить конструктор перемещения
# дальше идет имя создаваемого класса и список его родителей
# -v [variables] - вписывает в private-секцию все переменные из списка

Программа далека от совершенства и не претендует на лавры UML (скорее - на лавры деревянной шайтан-коробки). Vim не до конца настроен (конфликтует автодополнение от youcompleteme и snippets). если кто подскажет, как заставить его давать список автодополнений, включая вставку сниппета - тому огромная благодарность. В общем, кому надо - берите, кто хочет поправить - пишите мне на почту (вроде бы она открыто показывается на сайте).

P.S.: Спасибо xaizek-у за консультацию по sed.

★★

Необучаемые всё продолжали гальванизировать поделие из 80х

anonymous
()

Я тут как-то искал какую-нить прогу, которая в CLI-режиме умеет целые проекты создавать

qmake -project?

vvviperrr ★★★★★
()

конфликтует автодополнение от youcompleteme и snippets

В официальной документации ycm сказано, как решить эту проблему. У меня применение выбранного из списка снипета делается по <C-\>

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

ещё раз ссылка.

Чё ещё туда впилить не помешало бы, следуя правилам хорошего тона? Я счас думаю, мб включить в шаблон еще stdint.h? один фиг, в cli часто он будет всплывать.

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

как по мне - так приятно писать 20 строчек, а на выхлопе получать 2000 строк на ровном месте с заготовкой для doxygen-документации.

А можешь свой vimrc куда-нить выложить?

aido ★★
() автор топика
Последнее исправление: aido (всего исправлений: 1)
Ответ на: комментарий от andreyu

Счас вообще автодополнение не работает. Как поправить? конфиг такой:

$ vim-addon-manager 
# Name                     User Status  System Status 
addon-mw-utils              removed       installed     
editexisting                removed       removed       
justify                     removed       removed       
matchit                     removed       removed       
snipmate                    removed       installed     
snippets                    removed       installed     
tlib                        removed       installed     
ultisnips                   removed       broken

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

как по мне - так приятно писать 20 строчек, а на выхлопе получать 2000 строк на ровном месте с заготовкой для doxygen-документации.

А сам doxygen так не умеет? И для vim есть плагин, упрощающий работу с doxygen.

А можешь свой vimrc куда-нить выложить?

Там нет ничего особенного, кроме набора плагинов, список которых я уже публиковал на ЛОРе.

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

vim-addon-manager

Что это такое и чем оно лучше vim-plug / neobundle?

snipmate removed installed
ultisnips removed broken

Они часом не конфликтуют? Я использую ultisnips с шаблонами для c, cpp и _

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

нее, это не плагин для vim. просто генерилка проектов. хоть из командной строки запускается.

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

Ну посмотри, поставь. только аккуратно с install.sh. vimrc затрется, если просто так запустить.

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

переходим в директорию с проектом и накидываем скриптик с архитектурой приложухи из строчек вида:
дальше идет имя создаваемого класса и список его родителей
-v [variables] - вписывает в private-секцию все переменные из списка

Поздравляю, ты изобрел велосипед с кривыми колесами. C++-ый (и на других языках код) из UML диаграмм генерировали еще лет 20 назад, когда я в школу еще ходил.

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

именно - *.cpp, *.hpp. с заготовкой документации в стиле Doxygen и какой-никакой иерархией классов.

Ссылку поменял на эту, так как это действительно ближе к строительным лесам, чем к IDE, как сказал Weres. Убрал оттуда настройщик vim, так как не нужны золотые молотки.

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