Sublime Text 3 und Pawn

    • Sublime Text 3 und Pawn

      Guten Tag,

      per PN wurde ich aufgrund eines Screenshots in einem anderen Thema gefragt welches Programm ich denn nutzen würde. Ich sah, dass es bereits einen anderen Beitrag dazu in diesem Thema gibt, aber ob man das Tutorial nennen kann, ist eine andere Sache.

      Nun: Ich nutze Sublime Text 3. Im Prinzip kostenpflichtig, jedoch gibt es keinen limitierten Testzeitraum. Man wird lediglich bei jedem ~30x speichern (Aber auch nur in bestimmten zeitlichen Abständen) darum gebeten sich doch bitte eine Lizenz für 70$ zu kaufen. Aber eins muss ich Sublime Text lassen: Das Geld ist es echt Wert! Damit kann man... ich möchte schon "unnötig" viel sagen, mit anstellen. Für alles gibts ein Plugin. Auch ist es überall Anpassbar. Man wird nicht durch ein Einstellungsfenster eingeschränkt, sondern bearbeitet direkt die Konfigurationsdateien, welche übrigens im JSON Format sind. Beim speichern werden die Einstellungen sofort übernommen. Somit erspart man sich in den meisten fällen ein Neustart.

      Derzeit sieht mein Sublime Text so aus:


      Je nach Lust und Laune auch mal so:



      Was benötigen wir dafür?
      - Sublime Text 3
      - (Package Control für Sublime Text 3)
      - Material Theme
      - PAWN Addon

      Das Package Control Addon ist optional, jedoch sehr Empfehlenswert, da damit mit einem Shortcut direkt alles mögliche Installiert werden kann.

      Setup
      Kommen wir zu Sublime Text 3. Herunterladen kannst du es auf deren offiziellen Website hier: sublimetext.com/3
      Nach einem einfachen Setup siehst du auch schon ein recht... sagen wir gewöhnungsbedürftiges Programm vor dir. Das Design ist... Geschmackssache. Aber das wollen wir natürlich ändern weshalb wir direkt mit dem Package Control Addon weitermachen.

      Dazu navigierst du oben in der Menuleiste zum Punkt "View" und rufst die Konsole mit dem Punkt "Show Console" auf. Am unteren Fensterrand erscheint nun ein Block mit Eingabefeld in welches du folgendes einfügst und mit Enter bestätigst:

      Python-Quellcode

      1. import urllib.request,os,hashlib; h = '2915d1851351e5ee549c20394736b442' + '8bc59f460fa1548d1514676163dafc88'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)

      Die Ausführung kann gut mal einen Moment dauern oder ggf. auch kurz hängen bleiben. Einfach ruhig bleiben und durchlaufen lassen.


      Nachdem das Installiert ist, werden wir dezent dazu aufgefordert Sublime Text neu zu starten. Das ist sogut wie das einzige mal in dem das der Fall ist. Nach einem kleinen Neustart können wir auch schon mit Strg+Shift+P die Command-Bar aufrufen. Die gibt es tatsächlich schon von Sublime Text aus, jedoch hat das Package Control einige Punkte hinzugefügt. Welche das sind, siehst du wenn du einfach Package Control in das Suchfeld eingibst. Kleiner Hinweis: Das Suchfeld unterstützt Fuzzy Search. Das bedeutet, um den Punkt "Package Control: Install Package" zu finden, kannst du auch einfach instpack oder instage oä. eingeben. Die Buchstaben dürfen lediglich nicht gewürfelt sein und müssen sich in der richtigen Reihenfolge befinden.

      Weiter gehts indem wir im genannten Menu nach Install Package suchen und mit Enter bestätigen. Das Popup verschwindet und bleibt auch einen kleinen Moment ausgeblendet. Nach einigen Sekunden taucht ein weiteres Popauf auf, welches im Prinzip genau so aufgebaut ist wie das vorherige. Dort suchen wir nun nach Material Theme. Haben wir es gefunden, bestätigen wir mit Enter. Aber sei dir sicher, dass du nur Material Theme auswählst. Nicht die Appbar, nicht White Panels oder sonstiges.

      Am unteren Fensterrand ploppt ggf. erneut die Konsole auf. Nach einem kurzen Moment ist das Theme dann auch schon installiert und im Editor wird eine Datei geöffnet. Nun müssen wir es nur noch aktivieren. Dazu kopieren wir uns den JSON-Code aus der Beschreibungsdatei welche sich soeben geöffnet hat und fügen diesen unter Preferences > Settings - User wieder ein.

      Das sollte dann ungefähr so aussehen:

      JavaScript-Quellcode

      1. {
      2. "ignored_packages":
      3. [
      4. "Vintage"
      5. ],
      6. "color_scheme": "Packages/Material Theme/schemes/Material-Theme.tmTheme",
      7. "theme": "Material-Theme.sublime-theme",
      8. }

      Möchten die hellere oder dunklere Version des Themes, hängen wir an den Dateinamen noch ein -Lighter bzw. -Darker an. Ungefähr so:

      JavaScript-Quellcode

      1. {
      2. "ignored_packages":
      3. [
      4. "Vintage"
      5. ],
      6. "color_scheme": "Packages/Material Theme/schemes/Material-Theme-Lighter.tmTheme",
      7. "theme": "Material-Theme-Lighter.sublime-theme",
      8. }


      Nach kurzem Speichern mit Strg+S hat Sublime auch schon seinen neuen Style. Fehlt noch Pawn: Dazu öffnen wir wieder mit Strg+Shift+P die Command-Bar, suchen wieder nach "Install Package" und im anschließendem Popup nach Pawn syntax. Nach einer kurzen Installation wars das auch schon. Eventuell musst du bereits geöffnete Dateien erneut öffnen, damit der Code entsprechend farblich markiert wird.

      Aber eine wichtige Sache fehlt noch: Wir möchten unser Script natürlich auch compilen können. Dazu fügen wir unseren eigenen Compiler unter Tools > Build System > New Buildsystem hinzu. Nun öffnet sich eine Datei wessen Inhalt wir mit folgendem ersetzen werden:

      JavaScript-Quellcode

      1. {
      2. "cmd": ["${project_path:${folder}}/pawno/pawncc.exe", "$file_name", "-;+", "-v2", "-d3", "-\\)+"],
      3. "working_dir": "${file_path}",
      4. "file_regex": "^([^\\.]+\\.pwn)\\((\\d+)\\)() : (.*)$",
      5. "variants": [
      6. {
      7. "cmd": ["${project_path:${folder}}/pawno/pawncc.exe", "$file_name", "-;+", "-v2", "-d3", "-\\)+", "-l"],
      8. "working_dir": "${file_path}",
      9. "name": "Preprocessed output"
      10. },
      11. {
      12. "cmd": ["${project_path:${folder}}/pawno/pawncc.exe", "$file_name", "-;+", "-v2", "-d3", "-\\)+", "-a"],
      13. "working_dir": "${file_path}",
      14. "name": "P-code output"
      15. }
      16. ]
      17. }
      Alles anzeigen

      Dieses Build-System geht davon aus, dass du den ganzen SAMP Server Ordner geöffnet hast (Dort worin sich die gamemods, pawno, include etc. Ordner befinden), was meines erachtens jedoch auch am praktischsten ist. Nun speichern wir die Datei mit Strg+S im vorgeschlagenen Ordner mit dem Namen "Pawno". Haben wir nun unser Gamemode Script geöffnet können wir wie gewohnt mit F5 debuggen. Beim ersten mal werden wir noch gefragt was wir machen möchten. Wir wählen schlicht und einfach "Pawno" aus. Die .amx Datei wird im selben Ordner wie das geöffnete Pawn-Script platziert.

      Beim compilen öffnet sich am unteren Bildschirmrand wieder die Konsole (Welche mit ESC geschlossen werden kann, auch wenn sie nicht angewählt ist) in welcher du wie gewohnt alle Fehler siehst. Recht praktisch (Funktioniert nur in der gamemode.pwn): Klickst du auf einen Fehler in der Konsole gelangst du direkt zu dieser Zeile.

      Ich hoffe ich konnte damit ein bisschen helfen. Ich freue mich über Feedback aller Art und wünsche nun viel Spaß mit Sublime Text und Pawn :)

      Viele Grüße,
      Deazl_
    • Kriege komischerweise folgendes raus:



      Kann ich nicht verstehen, habe den Ordner offen, gecheckt ob alles dadrin ist und vorsichtshalber 2 mal neu das Tutorial durchgegangen. Woran kann das liegen?

      //Edit:
      Alles super, habs schon. :whistling:
      RTL - Das N steht für Niveau!
      MfG,
      StreetS

      Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
      Wer es nicht kapiert wird in Breadfish & Skype blockiert.

      - Stolzer PAWN Scripter der Klasse Beherrscht

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von #S. ()