W ciągu ostatnich 10 dni czytałem "Programowanie w Scali" i pisałem kod Scala.Scala - proces tworzenia aplikacji oparty na konsolach
Jak widać w moim GitHub Scala playground, zaczynam naprawdę lubić ten język - jest tak szybki jak OCaml (dzięki technologii HotSpot JVM), chroni mnie przed moimi literami (i błędami!) Z jego mocnymi i statycznymi system typu, a co najważniejsze: w sensie korporacyjnym, nie mieszka w odległej "wyspie" (jak Haskell i OCaml) ... ponieważ ma ogromny ekosystem JVM.
My tylko problem do tej pory:
Chociaż mam zorientowali się, jak rozwijać mój kod Scala pod VIM z SBT-QuickFix lub pod Emacs z Ensime (a tym samym mają autouzupełnianie i nawigację błędzie), I do tej pory nie udało się znaleźć drogę do debugowania mojego kodu, z taką samą łatwością, że robię dla Pythona:
bash$ python -m pdb ./someCode.py
Wszystkie wpisy Google wskazuje na, w zasadzie, mówiąc: „użyć tego IDE, które bardzo lubię. .. "
Istnieją jednak powody - nie ma punktu i Wyliczając je, albo je znasz, albo nie - ludzie tacy jak ja wolą (a) programmable editors i (b) samodzielny debugger, dostępny poza edytorem.
Jeśli jesteś jednym z niewielu podobnie myślących ludzi, którzy nie lubią IDE i używają Scala, naprawdę chciałbym wiedzieć, w jaki sposób debugujesz - w rzeczywistości byłbym zainteresowany usłyszeć twój cały przepływ pracy.
Mine, jakim jest:
- Dodaj
sbt-quickfix
do mojego SBT Project/folderu (tylko look at my code w tym GitHub repo) - Spawn
sbt
w terminalu i uruchom~compile
tak, że automatycznie buduje kiedy zmieniam coś w moich źródłach - VIM automatycznie otrzymuje błędy i pokazuje je.
- Kiedy kompilacja jest zielona, naciśnij ENTER w
sbt
terminalu wpiszrun
- itp
Ensime jest nawet lepiej, pozwalając autouzupełnianie także:
sbt gen-ensime
- Spawn emacs edytuje jeden z moich plików .scala i
M-x ensime
- Użyj
ensime-typecheck-all
(mapowane do F7 w moich dotfiles) i gdy wszystko jest OK ... ensime-sbt-do-run
Oto do nadziei, że nie jestem sam - i że ktoś tam będzie mi pomóc w samodzielnym debugowania, zbyt .. - ostatnie wyzwanie, zanim w pełni obejmuję Scalę :-)
Czego dokładnie chcesz od debuggera? Używam emacs + ensime, ma wbudowany debugger (domyślnie C-c C-d). Jeśli nie, to działam 'sat-start' z' ~ testQuick' lub '~ compile' – 4lex1v
@ 4lex1v: Chcę naprawdę podstawowych rzeczy dostarczanych przez prawie wszystkie debuggery linii cmd (' gdb', 'python -m pdb ',' perl -d', etc) np możliwość "ja" wokół aktualnie wykonywanej linii, ustawienie "b" punktu na linii pliku, "dra wartości wartości zmiennych", "n-linia", itd. Wyszukiwałem go dla 'sat-start' ale nie znaleziono żadnych powiązanych ze Scalą linków - żadnych wskazówek? – ttsiodras
To był "sbt-start", autokorekta, przepraszam. Nigdy wcześniej nie używałam debuggera CMD-line, przepraszam, ale to, co opisujesz doskonale wykonując z ensime. Przynajmniej nigdy nie słyszałem o żadnym debuggerze linii cmd dla scala – 4lex1v