atarionline.pl Mad Pascal Experience - Forum Atarum

    Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

    • :
    • :

    Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

      • 1: CommentAuthortonual
      • CommentTime1 Jan 2026 16:02 zmieniony
       
      Rozwijam wtyczkę do Visual Studio Code (1.91), która wspomaga pisanie w MP.
      Jest to wczesna wersja.
    1.  
      No i spoko!
      • 3: CommentAuthortonual
      • CommentTime1 Jan 2026 16:21 zmieniony
       
      Prośba o testy i sugestie.
      Nie udało się załączyć gifów z podglądem funkcjonalności.. (ograniczenie do 3 załączników?),
      dlatego są w zipie.

      Wtyczka to plik .vsix (załącznik)

      Instalacja;
      Wejść na "Extensions" i z menu "..." "Install VSX from file".

      Wymagane dodanie 2 parameterow do globalnych settings.json

      "madpascal.systemLibPath": "/users/tonual/retro_dev/Mad-Pascal/lib",
      "madpascal.formatterPath": "ptop",


      "ptop" jest instalowany z FreePascal'em.
      Otwarty plik Mad Pascala (.pas) zostanie rozpoznany przez rozszerzenie.
      • 4: CommentAuthorzbyti
      • CommentTime1 Jan 2026 19:13 zmieniony
       
      obejrzałem GIF-y i wygląda zacnie!

      niestety nie przetestuję bo mam obecnie czas tylko na ASM65816, ale w przyszłości zapewne użyję tej wtyczki :]
      • 5: CommentAuthoriSiek
      • CommentTime1 Jan 2026 20:55
       
      Czy to z VS 2022 zadziała bez problemów? Mógłbym wtedy potestowac
      • 6: CommentAuthortonual
      • CommentTime1 Jan 2026 21:20 zmieniony
       
      @ISiek_1
      Niedoprecyzowałem - to jest wtyczka pod lekki Visual Studio Code;
      ->link<-

      Funkcjonalność:

      Document Outline: Pełna lista procedur, funkcji oraz sekcji var, const i type w bocznym panelu. Pozwala na łatwe przechodzenie/skoki do tych elementów.

      Nawigacja po kodzie: Działa "Go to Definition" (F12) – sprawdza definicję procedury/funkcji lub zmiennej, nawet jeśli jest w innym pliku (obsługuje sekcje uses oraz $I).

      Wyszukiwanie referencji: sprawdza wszystkie miejsca w kodzie, w których użyta jest dana funkcja czy stała.

      Inteligentne autouzupełnianie: Podpowiada słowa kluczowe i nazwy symboli. Zawiera też gotowe snippety (szablony) .

      Dokumentacja online: aktywne linki to wbudowanych/podstawowych bibliotek funkcji/procedur/ – klik i otwiera się link w przeglądarce.

      Kolorowanie: Semantyczna analiza kodu odróżnia zmienne globalne od lokalnych, stałe od typów itd.

      Formatowanie: Integracja z zewnętrznym formatowaniem (ptop).


      Skróty klawiszowe /wywołanie akcji są w menu kontkestowym (prawy przycisk na np. zmiennej/funkcji itd)
      • 7: CommentAuthorCuzz
      • CommentTime1 Jan 2026 21:48
       
      wiem że na atarynkach są już wmontowane asemblery, nie wiem czy programy asemblerowskie działają.
      • 8: CommentAuthortonual
      • CommentTime1 Jan 2026 22:32
       
      @Cuzz wtyczka jest tylko na PC, ale cross-platformowa
      • 9: CommentAuthorastrofor
      • CommentTime1 Jan 2026 22:53
       
      zastanawiam sie jak podlinkowac "madpascal.systemLibPath": "/users/tonual/retro_dev/Mad-Pascal/lib",
      "madpascal.formatterPath": "ptop", do wersji mad pascala dzialajacego pod dockerem. Z tego co widze to sie nie da, chyba ze uruchomie vscode z Twoja wtyczka w kontenerze mad pascala
      • 10: CommentAuthortonual
      • CommentTime1 Jan 2026 23:37 zmieniony
       
      "madpascal.systemLibPath" tu ścieżka do katalogu "lib" Mad-Pascala na dysku.
      "madpascal.formatterPath" tu ścieżka do ptop (instalacja Free Pascala powinna instalować ten program, formatuje składnię Pascala)
      Można go zainstalować chyba też osobno.
      ->link<-

      Pewnie ma to sens uruchomić vscode z Dockera skoro Mad Pascal tam jest.
      Osobiście używam skryptu .sh do kompilacji plików .pas

      #!/bin/bash

      mp="$HOME/retro_dev/Mad-Pascal/src/mp"
      mp_lib="$HOME/retro_dev/Mad-Pascal/lib"
      mads="$HOME/retro_dev/Mad-Assembler/mads"
      base="$HOME/retro_dev/Mad-Pascal/base"

      # Check if input file is provided
      [ -z "$1" ] && { echo "Usage: $0 <filename.pas>"; exit 1; }

      # Check if input file has .pas extension
      [[ ! "$1" =~ \.pas$ ]] && { echo "Error: '$1' must be a .pas file"; exit 1; }

      # Check if input file exists
      [ ! -f "$1" ] && { echo "Error: '$1' does not exist"; exit 1; }

      name="${1%.pas}"

      # Compile with Mad Pascal
      "$mp" "$name.pas" -ipath:"$mp_lib" || { echo "Error: Compilation failed"; exit 1; }

      # Check if .a65 file was generated and assemble
      if [ -f "$name.a65" ]; then
      mkdir -p output
      mv "$name.a65" output/
      "$mads" "output/$name.a65" -x -i:"$base" -o:"output/$name.xex" || { echo "Error: Assembly failed"; exit 1; }
      "$mads" "output/$name.a65" -x -i:"$base" -o:"output/$name.obx" || { echo "Error: Assembly failed"; exit 1; }
      else
      echo "Error: $name.a65 not found"
      exit 1
      fi

      # Run in emulator if second argument is provided and .xex file exists
      [ ! -z "$2" ] && [ -f "output/$name.xex" ] && atari800 "output/$name.xex"
    2.  
      Wtyczkę będę testował podczas najbliższej sesji programistycznej, czyli pewnie w weekend. Choć wyszła Hota 1.8 to nie wiem, czy będzie czas :)

      Ale wątek przypomniał mi o "ptop", który to średnio mi działał (głównym problemem było to, że w pewnych okolicznościach dodawał pustą linię przy każdym formatowaniu i jak nie zauważyłem tego w porę to część kodu "odjeżdżała" mi bardzo daleko w dół).

      Obecnie korzystam z "pasfmt", no ale temu też daleko do ideału.

      Zatem pytanie, czy wtyczka ogarnie współpracę z "pasfmt"?
      • 12: CommentAuthortonual
      • CommentTime2 Jan 2026 13:22 zmieniony
       
      @ mgr_inz_rafal dodałem wsparcie pasfmt.
      Wystarczy podać ścieżkę do programu pasfmt, zamiast ścieżki do ptop;

      "madpascal.formatterPath": "{path to pasfmt}"

      Wkrótce dodam repozytorium i "changelog", aby uporządkować zmiany.
    3.  
      Dzięki!
    4.  
      No dobra, wszystko działa :)
      Zatem nie mam za bardzo feedbacku, no bo wszystko działa. "Go to definition" i "Find references" to coś, czego najbardziej mi brakowało jak siadałem do Pascala.

      Jakby co, stawiam piwo :)
      • 15:
         
        CommentAuthormav
      • CommentTime3 Jan 2026 13:46
       
      No właśnie aż za szybko im z tą hotą poszło :D
      Jeszcze nie dojrzałem do poprzednich zmian
    5.  
      Miałbym feedback odnośnie kolorów w komentarzach. Np. na rysunku widzimy, że "PerformSpowolnienie" jest zielone (bo jest zdefiniowane), a "StartDetoks" jest poprawnie szare. Imho, wszystko powinno być szare, łącznie z "if", "then", etc.

      mav:

      No właśnie aż za szybko im z tą hotą poszło

      Wprowadzili dość rewolucyjny koncept, może chcieli zebrać feedback z community zanim zrobią kampanię.
      • 17: CommentAuthortonual
      • CommentTime3 Jan 2026 14:45
       
      Polecam zestaw kolorów "Electron Color Theme" (instalowane jako extension).
    6.  
      Myślisz, że to problem z color theme? Mi się moje aktualne kolorki podobają i w innych językach niż Pascal komentarze są poprawnie kolorowane (czyli wyszarzane).
      • 19: CommentAuthortonual
      • CommentTime3 Jan 2026 16:06
       
      Racja, komentarze z (* ... *) źle się kolorują.
      Używam jedynie // i nie wyłapałem tego.
      Dzięki za spostrzeżenie.
      • 20: CommentAuthortonual
      • CommentTime6 Jan 2026 12:32
       
      @mgr_inz_rafal poprawione kolorowanie komentarzy z użyciem (* ... *)
    7.  
      Dzięki!
      • 22:
         
        CommentAuthormav
      • CommentTime9 Jan 2026 11:11
       
      Masz ustawioną wspaniałą osobę czcionkującą :]
      • 23: CommentAuthortonual
      • CommentTime9 Jan 2026 12:23
       
      Mam, taak samoo jak tyyy
      Miasto mojee, a w nnniiiim
      Naaajpiękniejszy mój świat
      ...
      la la llala lla laaa
    8.  
      Potwierdzam poprawne odzworowywanie kolorów :)
    9.  
      Zgłaszam jeszcze feedback, aby słowa kluczowe z Pascala nie były detektowane w komentarzach. Obrazuje to poniższy obrazek, na którym "move" jest podkreślone oraz aktywne jako hiperłącze.

      Ale to w sumie pierdoła :)