Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Automatyczne formatowanie kodu #15

Open
wants to merge 15 commits into
base: master
Choose a base branch
from
Open

Automatyczne formatowanie kodu #15

wants to merge 15 commits into from

Conversation

greg19
Copy link
Collaborator

@greg19 greg19 commented Jan 4, 2025

Jako że w #11 miałem kilka uwag co do stylu kodu, to stwierdziłem że powinniśmy go jasno ustalić i zautomatyzować. Ten PR dodaje hook który przy każdym commicie formatuje wszystkie bloki wewnątrz plików markdown.

Moja propozycja formatowania znajdują się w pliku .clang-format. Z głównych decyzji, które aktualnie coś zmieniają to:

  • Brak nowej linii między } a else.
  • Limit na liczbę kolumn 120.

W razie innych opinii możemy dyskutować.

Aby rzeczywiście wszystko działo się automatycznie należy zainstalować narzędzie:

pip install pre-commit
pre-commit install

Wtedy przy każdym git commit uruchomi się formater na zmienionych plikach. Jeżeli coś mu się nie spodoba, to commit się nie powiedzie, a w plikach będą zmiany które możemy obejrzeć za pomocą git diff i zaakceptować za pomocą git add. Jak nam bardzo przeszkadza to można zrobić commita bez tego sprawdzenia za pomocą git commit --no-verify.

Aktualnie narzędzie ignoruje lekcje lekcje A2, A3 i A8, które specjalnie mają błędy. Jak ustalimy wspólny styl, to mogę je ręcznie dostosować.

@greg19 greg19 requested review from lduraj and tonowak January 4, 2025 14:45
@tonowak
Copy link
Collaborator

tonowak commented Jan 5, 2025

Dzięki za przygotowanie PRa! Nie wiedziałem, że istnieje hook, który formatuje wewnątrz markdown, dobre.

Przesyłam clang-format, z którego zazwyczaj korzystam, dopasowany pod mój styl. Jako, że styl kodu w kursie był modelowany według moich widzimisiów, to spodziewam się, że ta konfiguracja jest bliska aktualnemu kodowi. https://pastebin.com/SSBKEiFR Proponuję go użyć, lub jego drobną modyfikację.

Ja jestem za zmergowaniem, ale chciałbym byś najpierw spróbował pokazać i nauczyć @lduraj (np. przez meeta) jak korzystać z pre-commit.

Szerokość 120 znaków jak najbardziej OK, } else myślę że też, ale do tego jestem trochę mniej przekonany -- jeszcze nie zastanawiałem się które może być bardziej intuicyjne/prostsze dla początkujących, lub które jest bardziej używane w większych projektach.

@greg19
Copy link
Collaborator Author

greg19 commented Jan 5, 2025

Zaczerpnąłem kilka rzeczy z twojego configu. Możesz spojrzeć na diff między moją propozycją i twoim configiem. Jak coś nie pasuje to proszę o zgłoszenie.

Jak config wygląda dobrze, to rozumiem że zostaje się skontaktować z Lechem.

@tonowak
Copy link
Collaborator

tonowak commented Jan 5, 2025

To TabWidth: 8 wygląda podejrzanie, czy nie korzystamy z 4-spacjowych tabów? (nie pamiętam co to dokładnie robi).

Diff jest spory i musiałbym sporo googlować, więc nie widzę potrzeby bym go dokładniej przejrzał. Jeżeli mam się przyjrzeć jakiemuś konkretnemu fragmentowi, to daj znać.

@greg19
Copy link
Collaborator Author

greg19 commented Jan 5, 2025

Rzeczywiście to była pomyłka, poprawione. Nie mam nic na co chciałbym zwrócić uwagę w diffie.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants