Jouer avec F# et Sublime Text 3
J'adore Sublime Text car il a la particularité de se lancer vite, très vite. Et comme le sujet en vogue depuis quelque temps est la programmation fonctionnelle, je cherchai un moyen de m'amuser avec F# sans passer par Visual Studio.
Prérequis
Si vous ne l'avez pas déjà fait, la première étape pour profiter pleinement de Sublime Text est d'installer le package manager. Dans la console de ST3 View > Show Console
, collez les lignes suivantes :
import urllib.request,os,hashlib; h = 'eb2297e1a458f27d836c04bb0cbaf282' + 'd0e7a3098092775ccb37ca9d6b2e4b7d'; 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)
Si vous utilisez encore ST2, le détail des instructions se trouve ici.
Puisque vous lisez ce poste, j'en déduis que vous avez F# installé sur votre machine (Si ce n'est pas le cas alors vous loupez un truc :p). Vérifiez que les outils du SDK sont disponibles depuis votre path et si ce n'est pas le cas, ajoutez-les. Chez moi en PowerShell cela donne :
[Environment]::SetEnvironmentVariable("Path",$env:Path + ";C:\Program Files (x86)\Microsoft SDKs\F#\3.1\Framework\v4.0","Machine")
Maintenant que l'environnement est configuré, il est temps de faire un petit tour des extensions disponibles.
Sublime FSharp Package
La première extension est sublime-fsharp-package. Elle a l'avantage d'être autosuffisante et la plus récente de toutes. Un coup de Ctrl+Shift+P
pour appeler la palette de commande, puis Install Package > sublime fsharp package
.
Une fois l'installation terminée, vous allez trouver les fonctionnalités bien pratiques suivantes :
Ctrl+k, Ctrl+i
pour les tooltipsCtrl+space
pour l'auto-complétionF12
Aller à la définitionF7
Exécuter le script- Surlignage syntaxique et Live error checking
Pour finir, il est possible d'utiliser la palette de commande avec Ctrl+., Ctrl+.
pour afficher toutes les commandes F#.
Cependant, il manque pour moi la possibilité de jouer facilement avec un REPL comme on peut le faire dans Visual Studio et ainsi tester du code en temps réel.
Sublimetext FSharp & SublimeREPL
Comme vous l'avez facilement deviné, il est possible de résoudre le problème du REPL avec l'ajout de certaines extensions :
Celle-ci vont vous permettre d'afficher une seconde vue qui contiendra un wrapper sur F# interactive et de le nourrir avec des raccourcies clavier :
Ctrl+,, s
Evaluer la sélectionCtrl+,, f
Evaluer le fichierCtrl+,, l
Evaluer la ligneCtrl+,, b
Evaluer le bloc
Pour afficher le REPL, cliquez sur Tools > SublimeREPL > F#
et/ou ajoutez un nouveau raccourci en éditant Preferences | Key bindings – user
:
[
{
"keys": [
"ctrl+alt+f"
],
"args": {
"id": "repl_f#",
"file": "config/F/Main.sublime-menu"
},
"command": "run_existing_window_command"
}
]
Enfin, il peut être pratique de configurer Sublime Text pour utiliser la même combinaison que Visual Studio Alt+Enter
toujours en éditant Preferences | Key bindings – user
:
{
"keys": [
"alt+enter"
],
"args": {
"scope": "selection"
},
"command": "repl_transfer_current"
}
Conclusion
Il est facile d'avoir un environnement rapide et simple pour coder en F# avec Sublime Text même si, bien entendu, il n'est pas (encore?) aussi intégré que Visual Studio. Maintenant il ne vous reste plus qu'à bien vous amuser et à (re) visionner la session de Jérémie Chassain IF YOU'RE NOT LIVE CODING, YOU'RE DEAD CODING!.