Venind la tine din Franța, o postare despre Mise în loc pentru proiecte R. Într -o exprimare mai puțin francofonă: să te descurci la ceva ce ai pentru a deschide acel lucru, fie că este un script sau un proiect sau un site web. Cu cât este mai ușor, cu atât mai repede ajungi la treabă. În această postare voi afișa o serie de funcții R și instrumente conexe pentru deschiderea scripturilor, proiectelor și site -urilor web pentru dvs. sau în numele utilizatorilor codului dvs.
Multe mulțumiri Hannah Frick pentru că a furnizat inspirație pentru unele articole ale acestei postări și pentru revizuirea acesteia!
Deschideți orice fișier din editor: utils::file.edit() sau styling cu {cli}
Dacă scrieți cod care creează un fișier la path Și atunci trebuie să -l deschidă pentru utilizator, nu este nevoie de dvs. rstudioapi::documentOpen(path) Acest lucru funcționează doar în Rstudio IDE. Puteți utiliza o funcție de bază R, utils::file.edit()! Acesta va deschide calea în editorul implicit. Fără să stabilesc nimic, acesta este Rstudio IDE când sunt deja în Rstudio și Positron când sunt deja în Positron. Dintr -o sesiune R din terminalacesta este editorul implicit al sistemului meu.
Am fost surprins să văd asta usethis::edit_file() Utilizează o funcție specifică RStudio atunci când este disponibil:
# https://github.com/r-lib/usethis/blob/4aa55e72ccca131df2d98fcd84fff66724d6250a/R/edit.R#L32C1-L36C4
if (rstudio_available() && rstudioapi::hasFun("navigateToFile")) {
rstudioapi::navigateToFile(path)
} else {
utils::file.edit(path)
}
Conform angajamentului care a adăugat această logică în urmă cu mai bine de 7 ani, „utils :: file.edit se deschide în dialog” pe care nu îl înțeleg. Poate că este diferit în funcție de sistemul de operare? Poate că Rstudio s -a schimbat între timp? Vă rog să -mi spuneți dacă aveți mai multe informații despre acest lucru. 🙏
În orice caz, îmi place foarte mult file.edit() în bazele de cod. În mod interactiv, nu folosesc este la fel de des ca, să zicem, scurtătura lui Positron pentru navigarea la fișiere (CTRL+P pe mașina mea).
Nu în ultimul rând, dacă doriți să faceți mai ușor pentru utilizator să deschidă un fișier, fără a -l deschide în numele lor, în mesajele emise prin intermediul pachetului CLI puteți utiliza clasa de fișiere:
cli::cli_alert_success("Hey go edit {.file config.toml} please!")
„Dacă terminalul acceptă Hyperlinks ANSI (de exemplu, Rstudio, Iterm2, etc.), atunci CLI creează un link clic pe care deschide fișierul în Rstudio sau cu aplicația implicită pentru tipul de fișier.”
Deschideți fișierul de script sau de testare al unei perechi de testare script: usethis::use_r() şi usethis::use_test()
Revenind la minunatul pachet Usethis, când numiți fișierele de testare după scripturile dvs., așa cum trebuie, rulând usethis::use_test() Când este concentrat pe un script R își va deschide fișierul de testare și, invers usethis::use_r() Când este concentrat pe un fișier de testare. Acesta este încă modul în care comută între cele două, chiar dacă în interiorul pozitronului.
Deschideți un proiect: positronProject Launcher, {Usethis}
Acest lucru este foarte bun atunci când vă aflați în cadrul unui proiect, dar cum vă introduceți IDE în primul rând? Cât de trist ar fi să pierdem impulsul înainte de a lansa chiar un proiect?
Când am folosit Rstudio IDE, aș naviga la folderul de interes, apoi faceți dublu clic pe .Rproj fişier. Hannah Frick m -a inspirat, când mi -a demonstrat Positron, să mă gândesc un pic mai greu la cât de mult fac clic. 😅 Am adoptat un flux de lucru mai bazat pe tastatură de când am trecut la Positron, lucru pe care l-aș fi putut face cu Rstudio IDE.
Un lucru în special că Hannah mi -a arătat că arată mișto este utilizarea unui lansator de proiect.
Acum, eu însumi mai folosesc terminalul. De exemplu, dacă clonez un depozitO voi deschide apoi cu positron comanda. Dacă această comandă nu funcționează încă pentru macOS sau Windows, este posibil să fie necesar să adăugați Positron pe calea dvs.
Un alt mod de a deschide proiecte pe care le folosesc foarte mult, în Positron și Rstudio, este să fac clic pe proiectele recente atunci când IDE este deja în funcțiune. Din păcate, am creat și, în prezent, folosesc adesea pachetul SAPERLIPOPETTE care creează folderele de aruncare pentru practicarea GIT. Acest lucru face ca lista proiectelor recente să spună gunoi. 🙃
În SAPERLIPOPETTE în sine, pentru a crea și deschide folderul de exerciții în numele utilizatorului, folosesc usethis::create_project()care îl deschide cu ușurință în Positron atunci când este rulat în Positron și în RStudio atunci când este rulat în RStudio.
Deschideți o adresă URL în browser: browseURL() sau stil cu {Cli}
Uneori doriți ca utilizatorul unui cod al dvs. să meargă să admire sau să citească o pagină web.
Pentru a deschide o adresă URL în browserul implicit, puteți utiliza utils::browseURL(). În toate usethis::browse_ Funcții, utils::browseURL() este ceea ce este folosit sub capotă. De exemplu:
browseURL("https://masalmon.eu/post")
Pentru a facilita deschiderea unei adrese URL dintr -un mesaj, puteți utiliza clasa URL a pachetului CLI. De exemplu:
cli::cli_alert_info("Go read that blog! {.url https://masalmon.eu/post}!")
Când primiți acel mesaj, utilizatorul va trebui pur și simplu să facă clic pe link pentru a -l urma (după ce are încredere în domeniul din Positron).
Deschis doar în sesiuni interactive: interactive(), rlang::is_interactive()
Dacă utilizați utils::file.edit() sau utils::browseURL() În codul dvs., trebuie să vă asigurați că sesiunea este interactivă.
Fie
if (interactive()) {
file.edit("config.toml")
}
Sau
if (rlang::is_interactive()) {
file.edit("config.toml")
}
Comparativ cu interactive(), rlang::is_interactive() Verificați, de asemenea, dacă tricot sau testthat sunt în desfășurare și oferă o trapă de evacuare prin intermediul rlang_interactive opţiune.
Toate funcțiile Usethis care încearcă să deschidă sau să răsfoiască ceva în numele utilizatorului se comportă diferit pe baza rlang::is_interactive().
Concluzie
În această postare am rezumat câteva instrumente pentru deschiderea scripturilor, proiectelor și adreselor URL – pentru tine sau în numele utilizatorului. Aș dori să adaug câteva cuvinte de concluzie dincolo de tabelul rezumat de mai jos, dar după atâtea discuții despre deschidere, am probleme închidere această postare. 😁
