33# ' Creates an appropriate query string for a search engine and then opens
44# ' up the resulting page in a web browser.
55# '
6- # ' @param site Name of site to search on. Supported options:
7- # ' `"google"` (default), `"bing"`, `"duckduckgo"`, `"startpage"`,
8- # ' `"stackoverflow"`, `"github"`, and `"bitbucket"`.
9- # ' @param query Contents of string to search. Default is the error message.
10- # ' @param rlang Search for results written in R. Default is `TRUE`
6+ # ' @param site Name of site to search on. Supported options:
7+ # ' `"google"` (default), `"bing"`, `"duckduckgo"`, `"startpage"`,
8+ # ' `"stackoverflow"`, `"rstudio community"`, `"github"`, and
9+ # ' `"bitbucket"`.
10+ # ' @param query Contents of string to search. Default is the error message.
11+ # ' @param rlang Search for results written in R. Default is `TRUE`
1112# '
1213# ' @return The generated search URL or an empty string.
1314# '
1415# ' @rdname search_site
1516# ' @export
1617# ' @seealso [search_google()], [search_bing()], [search_duckduckgo()],
17- # ' [search_startpage()], [search_stackoverflow()], [search_github ()],
18- # ' [search_bitbucket()], [searcher()]
18+ # ' [search_startpage()], [search_stackoverflow()], [search_rstudio_community ()],
19+ # ' [search_github()], [ search_bitbucket()], and [searcher()]
1920# ' @examples
2021# ' # Search in a generic way
2122# ' search_site("r-project", "google")
3839# ' # Search all languages on StackOverflow for convolutions
3940# ' search_stackoverflow("convolutions", rlang = FALSE)
4041# '
42+ # ' # Search RStudio Community
43+ # ' search_rstudio_community("RStudio IDE")
44+ # '
4145# ' # Search GitHub Issues for bivariate normal in the language:r
4246# ' search_github("bivariate normal")
4347# '
@@ -56,16 +60,18 @@ search_site = function(query,
5660 site = c(
5761 " google" ,
5862 " bing" ,
63+ " duckduckgo" ,
64+ " ddg" ,
65+ " startpage" ,
66+ " sp" ,
5967 " stackoverflow" ,
6068 " so" ,
69+ " rstudio community" ,
70+ " rscom" ,
6171 " github" ,
6272 " gh" ,
63- " duckduckgo" ,
64- " ddg" ,
6573 " bitbucket" ,
66- " bb" ,
67- " startpage" ,
68- " sp"
74+ " bb"
6975 ),
7076 rlang = TRUE ) {
7177 site = tolower(site )
@@ -74,21 +80,19 @@ search_site = function(query,
7480 switch (
7581 site ,
7682 google = search_google(query , rlang ),
77- stackoverflow = ,
78- # empty case carried below
79- so = search_stackoverflow(query , rlang ),
80- github = ,
81- # empty case carried below
82- gh = search_github(query , rlang ),
83- bitbucket = ,
84- # empty case carried below
85- bb = search_bitbucket(query , rlang ),
8683 bing = search_bing(query , rlang ),
87- duckduckgo = ,
88- # empty case carried below
84+ duckduckgo = , # empty case carried below
8985 ddg = search_duckduckgo(query , rlang ),
90- startpage = ,
91- sp = search_startpage(query , rlang )
86+ startpage = , # empty case carried below
87+ sp = search_startpage(query , rlang ),
88+ stackoverflow = , # empty case carried below
89+ so = search_stackoverflow(query , rlang ),
90+ `rstudio community` = , # empty case carried below
91+ rscom = search_rstudio_community(query , rlang ),
92+ github = , # empty case carried below
93+ gh = search_github(query , rlang ),
94+ bitbucket = , # empty case carried below
95+ bb = search_bitbucket(query , rlang )
9296 )
9397}
9498
@@ -122,16 +126,18 @@ search_site = function(query,
122126searcher = function (site = c(
123127 " google" ,
124128 " bing" ,
129+ " duckduckgo" ,
125130 " ddg" ,
131+ " startpage" ,
126132 " sp" ,
127- " so" ,
128- " gh" ,
129- " bb" ,
130- " duckduckgo" ,
131133 " stackoverflow" ,
134+ " so" ,
135+ " rstudio community" ,
136+ " rscom" ,
132137 " github" ,
138+ " gh" ,
133139 " bitbucket" ,
134- " startpage "
140+ " bb "
135141),
136142rlang = TRUE ) {
137143 function (query = geterrmessage(), rlang = rlang ) {
@@ -232,7 +238,7 @@ search_sp = search_startpage
232238# ########################## End Search Engines
233239
234240
235- # ########################## Start Search Code Repos
241+ # ########################## Start Search Development Community Websites
236242
237243# ' @rdname search_site
238244# ' @export
@@ -259,6 +265,36 @@ search_stackoverflow = function(query = geterrmessage(), rlang = TRUE) {
259265# ' @export
260266search_so = search_stackoverflow
261267
268+ # ' @rdname search_site
269+ # ' @export
270+ # ' @section RStudio Community Search:
271+ # ' The `search_rstudio_community()` and `search_rscom()` functions both search
272+ # ' [RStudio Community](https://community.rstudio.com/) using:
273+ # ' \code{https://community.rstudio.com/search?q=<query>}
274+ # '
275+ # ' For additional details regarding [RStudio Community](https://community.rstudio.com/)'s
276+ # ' search interface please see the [Discourse](https://discourse.org) API documentation:
277+ # ' \url{https://docs.discourse.org/#tag/Search}
278+ search_rstudio_community = function (query = geterrmessage(), rlang = TRUE ) {
279+ if (! valid_query(query )) {
280+ message(" Please provide only 1 `query` term that is not empty." )
281+ return (invisible (" " ))
282+ }
283+
284+ # Disable using a query check
285+ # query = append_r_suffix(query, rlang = rlang, "[r]")
286+
287+ browse_url(" https://community.rstudio.com/search?q=" , query )
288+ }
289+
290+ # ' @rdname search_site
291+ # ' @export
292+ search_rscom = search_rstudio_community
293+
294+ # ########################## End Search Development Community Websites
295+
296+ # ########################## Start Search Code Repos
297+
262298# ' @rdname search_site
263299# ' @export
264300# ' @section GitHub Search:
@@ -285,7 +321,6 @@ search_github = function(query = geterrmessage(), rlang = TRUE) {
285321# ' @export
286322search_gh = search_github
287323
288-
289324# ' @rdname search_site
290325# ' @export
291326# ' @section BitBucket Search:
0 commit comments