Okropna moda na robienie wcięć spacjami

Okropna moda na robienie wcięć spacjami
KA
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 20 godzin
  • Lokalizacja:Warszawa
  • Postów:41
5

Co się w ogóle stało z tym światem?
Wcinanie przy pomocy tabulatora jest proste i uniwersalne:

  • jeden tab - jeden poziom wcięcia, nie potrzebujemy wsparcia IDE, żeby usunąć wcięcie jednym wciśnięciem Backspace,
  • każdy może sobie ustawić w edytorze taki poziom tabulacji, jaki mu odpowiada,
  • do wyrównywania i tak używa się spacji, dzięki czemu kod wygląda dokładnie tak, jak autor zakładał w każdych warunkach.

Tymczasem panuje jakaś niezrozumiała dla mnie moda, żeby używać tylko spacji. Nieraz widziałem prawdziwie szatańskie wersety kodu wciętego dwiema spacjami - ledwo czytelna ohyda!

Jednak pal licho styl kodu, każdy ma swój. Sytuacja jest o tyle straszna, że niektóre języki, których składnia jest oparta na wcięciach (np. F#, czy przypadkiem też nie Haskell?), zabraniają robienia wcięć tabulatorem (tak, wiem o #indent "off" w F#, ale wtedy trzeba pisać średniki...). Z powodu dziwnej mody pozbawieni jesteśmy możliwości korzystania z niezaprzeczalnych zalet tabulatora!

Wszystkich podzielających moje zdanie zachęcam do wyżalenia się i wspólnego narzekania na haniebnie nieefektywne robienie wcięć spacjami.

Spine
  • Rejestracja:prawie 22 lata
  • Ostatnio:23 minuty
  • Postów:6627
3

Jak piszę w zwykłych edytorach, to zawsze używam tabów. Ale w zaawansowanych edytor robi wcięcia za mnie, otwieram klamerkę, wciskam enter i mam wcięcie. Jak na końcu klasy usunę i zrobię klamerkę to w całej klasie wcięcia są odpowiednio formatowane. Przestaje się zwracać uwagę na to, czy edytor daje spacje, czy taby :D


🕹️⌨️🖥️🖱️🎮
edytowany 1x, ostatnio: Spine
KA
Używanie spacji zamiast tabów to jak robienie pogrubienia w Wordzie żeby sformatować nagłówki :)
LukeJL
fajny serial... tylko w sumie kto tak robi wcięcia, żeby ręcznie wciskać spacje, a nie np. tab który się zamieni na spację pod spodem?
LukeJL
z drugiej strony musieli to jakoś pokazać na serialu, więc w sumie ok.
KA
@LukeJL: Używać Taba, żeby robić wcięcia spacjami w taki sposób, jakby robiło się wcięcia tabami...
mr_jaro
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Grudziądz/Bydgoszcz
  • Postów:5300
0

Nie jest to "nie wiadomo skąd" taby mają określoną długość, bodajże 5 liter w fontach ze stałym rozmiarem liter, powoduje to zbyt duże wcięcie, dlatego stosuje się taby, 2 (np w scss) 4 (np php), są na to z góry określone standardy, tak by nie wymyślać koła na nowo, ustawiasz sobie edytor i lecisz. Nikt normalny nie pisze dziś kodu w notatniku.


It's All About the Game.
edytowany 2x, ostatnio: mr_jaro
Zobacz pozostałe 14 komentarzy
hauleth
Na szczęście coraz więcej języków idzie po rozum do głowy i domyślne formattery wymuszają wcięcia "preferowane przez społeczność". I na szczęcie coraz więcej z tego to spacje. Dodatkowo AFAIK większość współczesnych edytorów również domyślnie używa spacji zamiast tabów.
jarekr000000
@hauleth: dlatego ja też już dawno się przestawiłem na spacje. Ale i tak uważam, że to nędza. Po prostu jak prawie wszyscy nie ogarniają TABów to szkoda się miotać. Nie ogarniają też dużo innych, bardziej istotnych problemów, gdzie jest naprawde o co walczyć.
hauleth
Ja bym powiedział, że ogarniają taby, dla tego ich nie używają.
jarekr000000
@hauleth - no nie wiem. Permanentnie słyszę argument przeciw tabom, że przez to kod u każdego wygląda inaczej. To jest właśnie szczyt nieogaru. Btw. u mnie i tak wygląda inaczej. Primo nie ma za bardzo kolorków (bo moim oczom i tak na grzyba), sekundo czcionka tylko proporcjonalna. Więc wszystkie te równania i tak mocno się rypią. Chociaż, w moim językach programowania to generalnie nie przeszkadza. Nie pisze w COBOLu.
hauleth
@jarekr000000: proporcjonalny font to już totalne zboczenie, ale ok, słyszałem o takich co tak lubią. Ja nawet jakbym chciał, to tego spróbować nie mogę. Jednak ogólnie proporcjonalne fonty nie przemawiają do mnie przy edycji kodu.
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:około godziny
  • Postów:8398
1

Najgorzej i tak jest pisać i tak i tak w jednym pliku (część linijek spacjami, część tabami). Wtedy jest sieczka. Szczególnie w Pythonie, gdzie wcięcia mają znaczenie semantyczne i coś co wygląda wizualnie, że jest na tym samym levelu zagnieżdżenia, dla Pythona może się okazać na innym


edytowany 1x, ostatnio: LukeJL
KL
A czy interpeter Pythona nie walił przypadkiem błędem w dziób, jeśli wcięcia były niespójne? Bo coś mi się tak zdaje, że zamiast wyprawiać herezje po swojemu, zwyczajnie darł gębę, że problem siedzi przy klawiaturze :P
LukeJL
oto mi chodziło z tą sieczką, że wali błędem. Nie wiem jak Python 3, bo w systemie mam 2.7, a ten wali mglistym errorem IndentationError: unindent does not match any outer indentation level
KL
Aaa, okay, to znaczy tyle tylko, że mózg mi się zawiesił i nie zajarzyłem. Nie wiem jak reszta, ale to Pythonowe IDE pokazywało akurat miejsce na czerwono, więc dało radę jakoś to ogarnąć... Przynajmniej tam, gdzie się samemu posadzilo 1-2 byki, ale 50 już byłoby smutne do poprawy
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 14 godzin
  • Lokalizacja:Wrocław
5

Taby vs spacje w 2018 to musi być słaby trolling.

KA
Spacje są jak pisanie "tą" zamiast "tę" - to, że w 2018 wszyscy to robią nie oznacza, że musimy zapomnieć o tym, co dobre i poprawne ;)
somekind
Dobre i poprawne jest używanie IDE.
KA
Zgadzam się, ja nie tykam języków, które nie dorobiły się dobrego IDE
Julian_
  • Rejestracja:prawie 8 lat
  • Ostatnio:ponad 4 lata
  • Postów:1703
0

to wszystko przez Pythona. Python to patologia.

KA
Ja zawsze wcinałem tabami w Pythonie, inni szatani byli tu czynni. Najbardziej mnie boli to F#, które byłoby niemal idealne, gdyby pozwalało na normalne wcinanie :(
TobiPL
  • Rejestracja:prawie 11 lat
  • Ostatnio:prawie 3 lata
  • Postów:66
0

Osobiście zawsze używam spacji i tabów razem

Tab jako oddzielnik czegoś głównego a spacja jako "podkategoria" czegoś głównego

np.
... jprd jak tu sie wkleja kod... omfg...

Kopiuj
main
 //==========
	Cos1
	 F01
	 F02
	  Var01
	  Var02
	 F03
 //==========
	Cos2
	 F01
	  Var01
	 F02
	  Var01
	   Var02
	    Var03
	 F03
	 F04
 //==========
End

Nie wiem czy poprawnie wkleiłem i czy zrozumiecie o co chodzi xD
wyraźnie widoczne pewnie nie będzie ale w N++ jest w pizdu wyraźne xD

zawsze elementy jakiegoś głównego procesu ustawiam pod nim oddzielając spacją

wszystkie elementy główne oddzielam komentarzem z konkretną ilością znaków "="

np. jeśli mamy linię z 30 znaków "="
to znaczy że koniec obecnei tego w czym byliśmy i teraz zaczyna się funkcja

jeśli jest 60 znaków "=" to koniec obecnego elementu i zaczyna się klasa

lel

zmienne też grupuje :D

...
int y,x;
int xsize,ysize;
string name;
...
itp.

flowCRANE
Albo naucz się wypowiadać kulturalnie, albo nie wypowiadaj się wcale. Nie będę więcej upominać.
vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
0

Nie wiem co tam we frontendzie czy .NOT się wyprawia, dla mnie to możecie nawet używać ɥɔʎuʃɐʞʎʇɹǝʍ ʍóqɐʇ, ale w backendzie TAB od dawna służy tylko do jednego - do zmuszenia IDE do wyliczenia sobie liczby spacji na wcięcie.

Zobacz pozostałe 13 komentarzy
KA
@hauleth: ok, ale jak jeden projekt definiuje, że wcięcie to 2 spacje, a drugi, że 4 to musisz sobie zmienić to pomiędzy projektami: Właśnie w tym rzecz, że dzięki tabom możesz być niezależny od preferencji innych programistów. Gdyby w tych projektach były normalnie taby, to byś sobie ustawiał w edytorze szerokość wcięć jak dusza zapragnie. A tak masz narzucone i pyta; jak masz problem z czytaniem kodu wciętego 2 spacjami, to... masz problem, bo nic z tym nie zrobisz.
hauleth
Tylko, że wtedy ciężko jest Ci zachować inne właściwości jak kolumny w kodzie (ok, można mieszać spacje i taby, ale to dalej nie rozwiązuje problemu kolejnego) czy limit znaków per linia. Dodatkowo spowoduje rozjechanie się kodu we wszystkich innych miejscach gdzie możesz chcieć kod przeglądać, chyba, że konfigurujesz sobie każde narzędzie osobno by dostosować je do swojego ulubionego stylu. Vim nawet przestrzega przed zmienianiem 'tabstop' do innych wartości niż 8 właśnie z tego powodu.
hauleth
Np. GitHub do 2015 roku zawsze wyświetlał taby jako 8 spacji. Obecnie pozwala zmienić to poprzez .editorconfig, ale dalej jesteś praktycznie przypięty do tego co preferuje autor repo, a nie Ty. Wszystkie znane mi emulatory terminali wyświetlają taby jako 8 i zmiana tego ustawienia to jest straszny ból odwłoka. Na szczęście jedyne miejsce gdzie jestem zobligowany do używania tabów to Makefile a w pozostałych miejscach używam standardów wypracowanych przez społeczności, czyli wszędzie spacji.
Marooned
ale dalej jesteś praktycznie przypięty do tego co preferuje autor repo - przecież dokładnie tak jest przy spacjach. Jak autor repo używa 3 spacji to nie ma opcji byś oglądał to inaczej, czyż nie?
hauleth
No o to mi chodzi, że dokładnie tak samo jakbyś używał tabów. A spacje zdecydowanie łatwiej ujednolicić niż taby.
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 19 godzin
4

Do robienia wcięć używam klawisza Tab. Nie będę przecież jak nowicjusz Worda stawiał 4 czy 8 spacji pod rząd. Co tam edytor pod tym wstawia to już mnie mało interesuje. Może sobie wstawić jednego taba, może sobie wstawić cztery spacje. Byleby wyglądało równo.
Jednolitość też nie jest priorytetem.
Jak czasami kod po przeklejeniu do innego edytora się psuje, to go naprawiam. Czasami Ctrl+H i jakimś regexpem, czasami ręcznie. To nie jest duży ani częsty problem, a wyolbrzymiany przez niektórych.

edytowany 2x, ostatnio: Azarien
gośćabc
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 3 lata
  • Lokalizacja:Szczecin
  • Postów:500
1

każde IDE "dobre" ma opcję wstawiania spacji używając klawisza tab wraz ze zdefiniowaną liczbą spacji per tab

koniec gównoburzy

Marooned
Administrator
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 21 godzin
  • Lokalizacja:Poznań
6
gośćabc napisał(a):

koniec gównoburzy

W sensie, że przechodzimy na poziom wyżej? ;-)
screenshot-20181107150655.png


Freja Draco
Freja Draco
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
1

Używanie TAB-a jest wygodne "z poziomu interfejsu" tzn, naciskam TAB, żeby zrobić wcięcie, zaznaczam wiersze i naciskam TAB / Shift + TAB, żeby tym wierszom dodać wcięcia / ująć wcięcia. Bo nie wyobrażam sobie ręcznego klepania każdej spacji.
Natomiast "w bebechach" mam ustawioną konwersję TAB-ów na określoną liczbę spacji, co ma tę zaletę, że w każdym edytorze / podglądzie źródła zobaczę tak samo wyglądający kod.


Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)