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!.