On using cursor ai in development

Маск назвав Семена свиндлером, а мій бот на API від OpenAI вважає що вони друзі.

До речі, Cursor ai це супер зручно, ефективність як на мене 10х помножує. Робив до нього перший підхід декілька місяців тому і тоді не дуже зрозумів, тому думаю напишу пост для тих хто так само поки що не розібралися.

Зараз на вихідних сумарно десь за 4 години:

* розібрався з основною фішкою Cursor ai

* створив AI бот що підтримує бесіду, вміє читати історію чату тощо – спочатку на Python

* віддебажили (ми з курсором) і довели до працюючого стану без документації та опису чат протоколу, дивлячись чисто на codebase клієнту на React.js

* переписали за лічені хвилини того самого бота з Python на Node.js / Typescript

* створили демку та документацію

* при цьому в Typescript я майже ні бум-бум

Працювати з курсором якщо ви використовували ChatGPT для кодінгу це приблизно те саме, але правильно. Він сам володіє контекстом коду і пропонує зміни прямо в файлах. Це те чого мені дуже не вистачало працюючі з ChatGPT. Тобто набагато зручніше.

Коли я робив перший підхід до курсору, я просто не знайшов де там чат і як додавати контекст. Там багато інших корисних фішок типу AI auto-completion.

Але для мене основний value це chat та “Apply”.

Тобто – відкриваєш чат (Ctrl+L або ⌘+L) – drag&drop туди весь свій код з лівого сайдбару. Відкриваєш файл з кодом який треба редагувати. Задаєш питання. У відповіді там де код натискаєш “Apply” і перевіряєш щоб файл там правильно вказаний куди apply. Чекаєш декілька секунд. Зліва дивишся diff зеленим-червоним прямо в своєму коді. Натискаєш “accept changes” якщо годиться. Вуаля. Дуже сильно спрощує роботу.

З терміналу він також розуміє копіпасту і може писати команди башем, але я поки що не користувався.

Думаю в моєї бульбашці вже всі розібралися кому треба, але якщо треба можу зробити відео на 5 хвилин як це працює. Там реально codespace context + чат + apply + accept changes це для мене основне.

Leave a comment

Your email address will not be published. Required fields are marked *