Подскажите, как вы храните снипеты кода?

Sakolua
Offline
Зарегистрирован: 13.08.2019

Подскажите программу для удобного хранения и использования кусков кода, которые можно многократно вставлять? Ну кроме txt файла.

b707
Offline
Зарегистрирован: 26.05.2017

Sakolua пишет:

 кроме txt файла.

.cpp и  .h файлы подойдут?

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

Sakolua
Offline
Зарегистрирован: 13.08.2019

Я про более мелкие задачи. Например вставить цикл

for (int i = 0; i <= 255; i++) {
    ...
}

или мигание

digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));

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

rkit
Offline
Зарегистрирован: 23.11.2016

Руками, конечно

negavoid
Offline
Зарегистрирован: 09.07.2016

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

bwn
Offline
Зарегистрирован: 25.08.2014

Sakolua пишет:

Я про более мелкие задачи. Например вставить цикл

Чет мне кажется, что такие руками будет быстрее и накосячить шансов меньше. ИМХО.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Sakolua пишет:

Я про более мелкие задачи. Например вставить цикл

for (int i = 0; i <= 255; i++) {7
    ...
}

или мигание

digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));

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

Особенно, када для i хватит не int, а uint8_t, как в твоем цыкале. 

b707
Offline
Зарегистрирован: 26.05.2017

Sakolua пишет:

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

вот именно что "шарить по диску в поисках "  - лень, поэтому такое проще набрать руками, занимает наверно десяток секунд.

Под вторично используемом кодом я понимаю другое - класс для кнопок. класс кольцевого буфера с усреднением, мнострочное меню, класс конечного автомата...

Чем собирать такие маленькие обрывки - лучше привыкайте части проектов оформлять в виде отдельных файлов. Например,если в проекте есть Олед дисплей - все функции. относящиеся к нему. я кладу в файл oled.h. Начиная новый проект - я просто копирую этот файл из предыдущего и чуть-чуть правлю... постепенно такие наработки накапливаются, в результате в новом проекте вы пишете с нуля, скажем, треть кода - а остальные две трети подтягиваются из старых проектов

Sakolua
Offline
Зарегистрирован: 13.08.2019

negavoid пишет:

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

эх, программисты называется... руками делать... зачем вообще комп, все руками можно?! Можно кнопку нажать и что б все само сделалось, а можно пыхтеть, вбивая 150 символов и смотреть чтоб не оЩибиться!

В ИДЕ нет автодополнения, к тому же речь не про него.

b707
Offline
Зарегистрирован: 26.05.2017

Sakolua пишет:

эх, программисты называется... руками делать... зачем вообще комп, все руками можно?! Можно кнопку нажать и что б все само сделалось, а можно пыхтеть, вбивая 150 символов и смотреть чтоб не оЩибиться!

чаще будешь набивать - быстрее запомнишь синтаксис.

А если все время копипастить - то и через пять лет будешь в затылке чесать, вспоминая заголовок цикла for :))

rkit
Offline
Зарегистрирован: 23.11.2016

Sakolua пишет:

эх, программисты называется... руками делать... зачем вообще комп, все руками можно?! Можно кнопку нажать и что б все само сделалось, а можно пыхтеть, вбивая 150 символов и смотреть чтоб не оЩибиться!

В ИДЕ нет автодополнения, к тому же речь не про него.

Этот текст написан копипастом из других текстов и макросами? Или кто-то лицемерит?

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Самое лучшее - хранить всё в мозгах. Оттуда только Ктулху сможет достать, да и то только с мозгами.

negavoid
Offline
Зарегистрирован: 09.07.2016

Sakolua пишет:

эх, программисты называется... руками делать... зачем вообще комп, все руками можно?! Можно кнопку нажать и что б все само сделалось, а можно пыхтеть, вбивая 150 символов и смотреть чтоб не оЩибиться!

В ИДЕ нет автодополнения, к тому же речь не про него.

Вы не поверите, но именно так и делается - просто ide не ардуиновская, и можно настроить какую угодно кнопку, и по ней будет вставляться какой угодно сниппет. Только это зачастую не требуется. А некоторые ide, типа дельфи, вообще, как только вводишь for, сразу же дополняют сами шаблон цикла, самодописывают условия и begin-end.

Вообще-то, смотреть нужно, знаете куда, при вводе текста? На документ. Не на клавиатуру или монитор, а на документ. А если вбиваем код из головы, то можно хоть в окно, ещё и для глаз полезнее будет. Но я смотрю на монитор, ибо там ещё и всякие разные уведомления бывают. А оЩибки - это пройдёт, через пару-тройку лет опыта (подсказываю, риски на клавиатуре на f и на j).

PS Да, эх, программисты, называется. Здесь, как некоторые говорят, их нет, только ардуинщики. С присвоением сего почётного звания вас и поздравляю. А остальные грустно вздохнут после прочтения поста, и продолжат вбивать for-ы руками, причём у них это получится быстрее, чем у вас с макросами по хоткиям.

vk007
Offline
Зарегистрирован: 16.06.2015

Sakolua пишет:

эх, программисты называется... руками делать... зачем вообще комп, все руками можно?! Можно кнопку нажать и что б все само сделалось, а можно пыхтеть, вбивая 150 символов и смотреть чтоб не оЩибиться!

В ИДЕ нет автодополнения, к тому же речь не про него.

Ну раз такая лень набирать руками, то поставьте себе программу для автозамены текста. Когда-то помню был такой Punto Switcher, он умел это делать. Наверняка существуют и другие программы.

Или набирайте тексты программ в Ворде :)))))) там тоже есть автозамена.

Sakolua
Offline
Зарегистрирован: 13.08.2019

Да я уж 100 раз сказал - не автозамена нужна!

"быстрее запомнишь синтаксис"
у меня нет задачи запомнить синтаксис или научиться набирать, зачем давать глупые советы?

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

Меня интересовал вопрос - какая программа поможет? А не нужно ли мне это или нет.

 

negavoid
Offline
Зарегистрирован: 09.07.2016

Не, увы, так и не понял :(

Sakolua пишет:
 какая программа поможет?

IDE

Sakolua
Offline
Зарегистрирован: 13.08.2019

В ней нет такого функционала.

negavoid
Offline
Зарегистрирован: 09.07.2016

В вашей нет, в других, нормальных, есть. Родная ардуиновская, увы, очень простая, но большего от неё и не требуется.

- Visual studio

- VS code

и куча других, платных и бесплатных.

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

b707
Offline
Зарегистрирован: 26.05.2017

Sakolua пишет:

Да я уж 100 раз сказал - не автозамена нужна!

Кругом все делают для своих редакторов, одни вы "с руками" гордо сидите.

Меня интересовал вопрос - какая программа поможет?

если  не автозамена, то что?  Что там такое "все делают для своих редакторов"? Расскажите..

И если вы это знаете лучше нас - нафига спрашивать? :)

Вы не обьясняете, что вы вообще хотите - только в общем "хочу не набирать". Я вот на яхте хочу жить - и что? :)

Конкретнее выражайтесь

Sakolua
Offline
Зарегистрирован: 13.08.2019

"И если вы это знаете лучше нас"
Так я вас и спрашиваю "Чем вы пользуетесь?" Если ответ "ничем", то он мне не нужен.

"Вы не обьясняете"

пост 3, ну если не знаешь что такое снипеты, тогда это уж мимо темы проходи ;)

"VS code"
Попробую. Но она после обычной иде как космический корабль просто.

b707
Offline
Зарегистрирован: 26.05.2017

Sakolua пишет:

Так я вас и спрашиваю "Чем вы пользуетесь?" Если ответ "ничем", то он мне не нужен.

ничем. Не могу представить, что сначала вставить

for (uint8_t i = 0; i < 255; i ++)

а потом исправить тип на uint16_t. переменную на К, предел на 128 и инкремент на декремент - это проще, чем набрать сразу эти несчастные 20 символов...

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

negavoid
Offline
Зарегистрирован: 09.07.2016

b707 пишет:

ничем. Не могу представить, что сначала вставить

for (uint8_t i = 0; i < 255; i ++)

а потом исправить тип на uint16_t. переменную на К, предел на 128 и инкремент на декремент - это проще, чем набрать сразу эти несчастные 20 символов...

ага :) а если ещё K не K, а engineLimiter например, а в следующем цикле fuelLimiter... дельфовская ide следит и когда заменяем i из автошаблона на limiter, она сама заменяет остальные вхождения. Но тут-то вопрос не тот :)

Sakolua
Offline
Зарегистрирован: 13.08.2019

b707 пишет:

Sakolua пишет:

Так я вас и спрашиваю "Чем вы пользуетесь?" Если ответ "ничем", то он мне не нужен.

ничем. Не могу представить, что сначала вставить

for (uint8_t i = 0; i < 255; i ++)

а потом исправить тип на uint16_t. переменную на К, предел на 128 и инкремент на декремент - это проще, чем набрать сразу эти несчастные 20 символов...

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

ок, набирай, разрешение нужно или что? зачем ты мне каждый раз это пишешь?

Стоит посчитать кол-во кликов и уже прирост, но это не для каждого математика видать...

bwn
Offline
Зарегистрирован: 25.08.2014

Sakolua пишет:

ок, набирай, разрешение нужно или что? зачем ты мне каждый раз это пишешь?

Стоит посчитать кол-во кликов и уже прирост, но это не для каждого математика видать...

Але, гараж, а может и правда, повежливее? В мирке нашем, замшелом, уютном, гордые буревестники регулярно возникают, то виринга поправить, то еще какую леворюцию сделать, но сертификатом (хоть araris и просил воздержаться) сраженные, в дальние дали уходят, со словами вещими - сдохнет ваш форум с таким отношением, сдохнет. А он живет и не кашляет.
Коль не хотите ряды их пополнить, в повороты, полегче входите.

BaNru
Offline
Зарегистрирован: 18.02.2020

Про IDE сказали выше. Сейчас, наверное, все IDE это поддерживают. Странно что NotePad++ и ST3 не упомянули среди простых.

Но раньше такая функция была доступна в Punto Switcher. Можно было В ЛЮБУЮ программу вставлять сниппет, набрав заложенное сокращение.

Вот статья на Хабре https://habr.com/ru/post/267975/