[inst/examples/globe/server.R:3:27:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/globe/server.R#L3) *style:* **Put spaces around all infix operators.**
```r
data(world.cities, package="maps")
                         ~^~
```
[inst/examples/globe/server.R:5:23:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/globe/server.R#L5) *style:* **Put spaces around all infix operators.**
```r
earth_dark <- list(img=system.file("images/world.jpg",package="threejs"),
                     ~^~
```
[inst/examples/globe/server.R:5:55:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/globe/server.R#L5) *style:* **Commas should always have a space after.**
```r
earth_dark <- list(img=system.file("images/world.jpg",package="threejs"),
                                                      ^
```
[inst/examples/globe/server.R:5:62:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/globe/server.R#L5) *style:* **Put spaces around all infix operators.**
```r
earth_dark <- list(img=system.file("images/world.jpg",package="threejs"),
                                                            ~^~
```
[inst/examples/globe/server.R:5:74:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/globe/server.R#L5) *style:* **Trailing whitespace is superfluous.**
```r
earth_dark <- list(img=system.file("images/world.jpg",package="threejs"),
                                                                         ^
```
[inst/examples/globe/server.R:6:29:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/globe/server.R#L6) *style:* **Put spaces around all infix operators.**
```r
                   bodycolor="#0011ff",
                           ~^~
```
[inst/examples/globe/server.R:7:28:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/globe/server.R#L7) *style:* **Put spaces around all infix operators.**
```r
                   emissive="#0011ff",
                          ~^~
```
[inst/examples/globe/server.R:8:30:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/globe/server.R#L8) *style:* **Put spaces around all infix operators.**
```r
                   lightcolor="#99ddff")
                            ~^~
```
[inst/examples/globe/server.R:14:42:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/globe/server.R#L14) *style:* **Commas should always have a space after.**
```r
     world.cities[order(world.cities$pop,decreasing=TRUE)[1:input$N],]
                                         ^
```
[inst/examples/globe/server.R:14:52:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/globe/server.R#L14) *style:* **Put spaces around all infix operators.**
```r
     world.cities[order(world.cities$pop,decreasing=TRUE)[1:input$N],]
                                                  ~^~
```
[inst/examples/globe/server.R:14:70:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/globe/server.R#L14) *style:* **Commas should always have a space after.**
```r
     world.cities[order(world.cities$pop,decreasing=TRUE)[1:input$N],]
                                                                     ^
```
[inst/examples/globe/server.R:20:29:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/globe/server.R#L20) *style:* **Put spaces around all infix operators.**
```r
    col <- rainbow(10, start=2.8 / 6,end=3.4 / 6)
                           ~^~
```
[inst/examples/globe/server.R:20:38:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/globe/server.R#L20) *style:* **Commas should always have a space after.**
```r
    col <- rainbow(10, start=2.8 / 6,end=3.4 / 6)
                                     ^
```
[inst/examples/globe/server.R:20:41:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/globe/server.R#L20) *style:* **Put spaces around all infix operators.**
```r
    col <- rainbow(10, start=2.8 / 6,end=3.4 / 6)
                                       ~^~
```
[inst/examples/globe/server.R:24:15:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/globe/server.R#L24) *style:* **Put spaces around all infix operators.**
```r
    list(value=value, color=col, cities=cities)
             ~^~
```
[inst/examples/globe/server.R:24:28:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/globe/server.R#L24) *style:* **Put spaces around all infix operators.**
```r
    list(value=value, color=col, cities=cities)
                          ~^~
```
[inst/examples/globe/server.R:24:40:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/globe/server.R#L24) *style:* **Put spaces around all infix operators.**
```r
    list(value=value, color=col, cities=cities)
                                      ~^~
```
[inst/examples/globe/server.R:30:26:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/globe/server.R#L30) *style:* **Commas should never have a space before.**
```r
    args <- c(earth_dark , list(lat=v$cities$lat, long=v$cities$long, value=v$value, color=v$color, atmosphere=TRUE))
                        ~^
```
[inst/examples/globe/server.R:30:36:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/globe/server.R#L30) *style:* **Put spaces around all infix operators.**
```r
    args <- c(earth_dark , list(lat=v$cities$lat, long=v$cities$long, value=v$value, color=v$color, atmosphere=TRUE))
                                  ~^~
```
[inst/examples/globe/server.R:30:55:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/globe/server.R#L30) *style:* **Put spaces around all infix operators.**
```r
    args <- c(earth_dark , list(lat=v$cities$lat, long=v$cities$long, value=v$value, color=v$color, atmosphere=TRUE))
                                                     ~^~
```
[inst/examples/globe/server.R:30:76:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/globe/server.R#L30) *style:* **Put spaces around all infix operators.**
```r
    args <- c(earth_dark , list(lat=v$cities$lat, long=v$cities$long, value=v$value, color=v$color, atmosphere=TRUE))
                                                                          ~^~
```
[inst/examples/globe/server.R:30:91:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/globe/server.R#L30) *style:* **Put spaces around all infix operators.**
```r
    args <- c(earth_dark , list(lat=v$cities$lat, long=v$cities$long, value=v$value, color=v$color, atmosphere=TRUE))
                                                                                ~^~
```
[inst/examples/globe/server.R:30:111:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/globe/server.R#L30) *style:* **Put spaces around all infix operators.**
```r
    args <- c(earth_dark , list(lat=v$cities$lat, long=v$cities$long, value=v$value, color=v$color, atmosphere=TRUE))
                                                                                ~^~
```
[inst/examples/globe/server.R:31:26:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/globe/server.R#L31) *style:* **Put spaces around all infix operators.**
```r
    do.call(globejs, args=args)
                        ~^~
```
[inst/examples/globe/ui.R:8:57:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/globe/ui.R#L8) *style:* **Put spaces around all infix operators.**
```r
      sliderInput("N", "Number of cities to plot", value=5000, min = 100, max = 10000, step = 100),
                                                       ~^~
```
[inst/examples/scatterplot/server.R:12:37:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/scatterplot/server.R#L12) *style:* **Commas should always have a space after.**
```r
    else num.ticks <- rep(num.ticks,3)
                                    ^
```
[inst/examples/scatterplot/server.R:13:38:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/scatterplot/server.R#L13) *style:* **Commas should always have a space after.**
```r
    if (input$radius) r <- rlnorm(50,meanlog = -4, sdlog = 0.5)
                                     ^
```
[inst/examples/scatterplot/server.R:15:32:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/scatterplot/server.R#L15) *style:* **Commas should always have a space after.**
```r
    data <- cbind(example_data,r)
                               ^
```
[inst/examples/scatterplot/server.R:17:40:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/scatterplot/server.R#L17) *style:* **Commas should always have a space after.**
```r
    color <- rep(rainbow(input$colors),length.out = nrow(data))
                                       ^
```
[inst/examples/scatterplot/server.R:19:60:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/scatterplot/server.R#L19) *style:* **Commas should always have a space after.**
```r
    labs <- sprintf("x=%.2f, y=%.2f, z=%.2f r=%.2f", data[,1], data[,2], data[,3], data[,4])
                                                           ^
```
[inst/examples/scatterplot/server.R:19:70:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/scatterplot/server.R#L19) *style:* **Commas should always have a space after.**
```r
    labs <- sprintf("x=%.2f, y=%.2f, z=%.2f r=%.2f", data[,1], data[,2], data[,3], data[,4])
                                                                     ^
```
[inst/examples/scatterplot/server.R:19:80:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/scatterplot/server.R#L19) *style:* **Commas should always have a space after.**
```r
    labs <- sprintf("x=%.2f, y=%.2f, z=%.2f r=%.2f", data[,1], data[,2], data[,3], data[,4])
                                                                               ^
```
[inst/examples/scatterplot/server.R:19:90:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/scatterplot/server.R#L19) *style:* **Commas should always have a space after.**
```r
    labs <- sprintf("x=%.2f, y=%.2f, z=%.2f r=%.2f", data[,1], data[,2], data[,3], data[,4])
                                                                                ^
```
[inst/examples/scatterplot/ui.R:13:36:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/scatterplot/ui.R#L13) *style:* **Put spaces around all infix operators.**
```r
      selectInput("renderer", label="Rendering method",
                                  ~^~
```
[inst/examples/scatterplot/ui.R:14:31:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/scatterplot/ui.R#L14) *style:* **Put spaces around all infix operators.**
```r
         choices = list("Auto"="auto", "Canvas"="canvas", "WebGL"="webgl"),
                             ~^~
```
[inst/examples/scatterplot/ui.R:14:48:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/scatterplot/ui.R#L14) *style:* **Put spaces around all infix operators.**
```r
         choices = list("Auto"="auto", "Canvas"="canvas", "WebGL"="webgl"),
                                              ~^~
```
[inst/examples/scatterplot/ui.R:14:66:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/inst/examples/scatterplot/ui.R#L14) *style:* **Put spaces around all infix operators.**
```r
         choices = list("Auto"="auto", "Canvas"="canvas", "WebGL"="webgl"),
                                                                ~^~
```
[R/globe.R:147:47:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L147) *style:* **Put spaces around all infix operators.**
```r
  img=system.file("images/world.jpg",  package="threejs"),
                                             ~^~
```
[R/globe.R:161:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L161) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(missing(lat) || missing(long))
    ^
```
[R/globe.R:168:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L168) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(length(i) > 0)
    ^
```
[R/globe.R:171:7:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L171) *style:* **Place a space before left parenthesis, except in a function call.**
```r
    if(any(j))
      ^
```
[R/globe.R:177:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L177) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(length(i) > 0)
    ^
```
[R/globe.R:180:7:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L180) *style:* **Place a space before left parenthesis, except in a function call.**
```r
    if(any(j))
      ^
```
[R/globe.R:186:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L186) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(length(i) > 0) bg = substr(bg, 1, 7)
    ^
```
[R/globe.R:187:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L187) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(missing(arcs))
    ^
```
[R/globe.R:197:21:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L197) *style:* **Put spaces around all infix operators.**
```r
  options = list(lat=lat, long=long, color=color, arcsOpacity=arcsOpacity,
                   ~^~
```
[R/globe.R:197:31:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L197) *style:* **Put spaces around all infix operators.**
```r
  options = list(lat=lat, long=long, color=color, arcsOpacity=arcsOpacity,
                             ~^~
```
[R/globe.R:197:43:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L197) *style:* **Put spaces around all infix operators.**
```r
  options = list(lat=lat, long=long, color=color, arcsOpacity=arcsOpacity,
                                         ~^~
```
[R/globe.R:197:62:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L197) *style:* **Put spaces around all infix operators.**
```r
  options = list(lat=lat, long=long, color=color, arcsOpacity=arcsOpacity,
                                                            ~^~
```
[R/globe.R:198:23:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L198) *style:* **Put spaces around all infix operators.**
```r
                 value=value, atmosphere=atmosphere, bg=bg, arcs=arcs,
                     ~^~
```
[R/globe.R:198:41:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L198) *style:* **Put spaces around all infix operators.**
```r
                 value=value, atmosphere=atmosphere, bg=bg, arcs=arcs,
                                       ~^~
```
[R/globe.R:198:56:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L198) *style:* **Put spaces around all infix operators.**
```r
                 value=value, atmosphere=atmosphere, bg=bg, arcs=arcs,
                                                      ~^~
```
[R/globe.R:198:65:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L198) *style:* **Put spaces around all infix operators.**
```r
                 value=value, atmosphere=atmosphere, bg=bg, arcs=arcs,
                                                               ~^~
```
[R/globe.R:199:27:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L199) *style:* **Put spaces around all infix operators.**
```r
                 arcsColor=arcsColor, arcsLwd=arcsLwd, arcsHeight=arcsHeight)
                         ~^~
```
[R/globe.R:199:46:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L199) *style:* **Put spaces around all infix operators.**
```r
                 arcsColor=arcsColor, arcsLwd=arcsLwd, arcsHeight=arcsHeight)
                                            ~^~
```
[R/globe.R:199:66:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L199) *style:* **Put spaces around all infix operators.**
```r
                 arcsColor=arcsColor, arcsLwd=arcsLwd, arcsHeight=arcsHeight)
                                                                ~^~
```
[R/globe.R:201:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L201) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(length(additional_args) > 0) options = c(options, additional_args)
    ^
```
[R/globe.R:203:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L203) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if("bodycolor" %in% names(options))
    ^
```
[R/globe.R:205:19:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L205) *style:* **Commas should always have a space after.**
```r
    i = grep("^#",options$bodycolor)
                  ^
```
[R/globe.R:206:7:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L206) *style:* **Place a space before left parenthesis, except in a function call.**
```r
    if(length(i) > 0) options$bodycolor = substr(options$bodycolor,1,7)
      ^
```
[R/globe.R:206:68:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L206) *style:* **Commas should always have a space after.**
```r
    if(length(i) > 0) options$bodycolor = substr(options$bodycolor,1,7)
                                                                   ^
```
[R/globe.R:206:70:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L206) *style:* **Commas should always have a space after.**
```r
    if(length(i) > 0) options$bodycolor = substr(options$bodycolor,1,7)
                                                                     ^
```
[R/globe.R:208:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L208) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if("emissive" %in% names(options))
    ^
```
[R/globe.R:210:19:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L210) *style:* **Commas should always have a space after.**
```r
    i = grep("^#",options$emissive)
                  ^
```
[R/globe.R:211:7:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L211) *style:* **Place a space before left parenthesis, except in a function call.**
```r
    if(length(i) > 0) options$emissive = substr(options$emissive,1,7)
      ^
```
[R/globe.R:211:66:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L211) *style:* **Commas should always have a space after.**
```r
    if(length(i) > 0) options$emissive = substr(options$emissive,1,7)
                                                                 ^
```
[R/globe.R:211:68:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L211) *style:* **Commas should always have a space after.**
```r
    if(length(i) > 0) options$emissive = substr(options$emissive,1,7)
                                                                   ^
```
[R/globe.R:213:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L213) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if("lightcolor" %in% names(options))
    ^
```
[R/globe.R:215:19:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L215) *style:* **Commas should always have a space after.**
```r
    i = grep("^#",options$lightcolor)
                  ^
```
[R/globe.R:216:7:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L216) *style:* **Place a space before left parenthesis, except in a function call.**
```r
    if(length(i) > 0) options$lightcolor = substr(options$lightcolor,1,7)
      ^
```
[R/globe.R:216:70:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L216) *style:* **Commas should always have a space after.**
```r
    if(length(i) > 0) options$lightcolor = substr(options$lightcolor,1,7)
                                                                     ^
```
[R/globe.R:216:72:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L216) *style:* **Commas should always have a space after.**
```r
    if(length(i) > 0) options$lightcolor = substr(options$lightcolor,1,7)
                                                                       ^
```
[R/globe.R:220:28:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L220) *warning:* **no visible global function definition for ‘texture’**
```r
  if (!is.list(img)) img = texture(img)
                           ^~~~~~~
```
[R/globe.R:244:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L244) *warning:* **no visible global function definition for ‘shinyRenderWidget’**
```r
    shinyRenderWidget(expr, globeOutput, env, quoted = TRUE)
    ^~~~~~~~~~~~~~~~~
```
[R/globe.R:244:29:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/globe.R#L244) *warning:* **no visible binding for global variable ‘globeOutput’**
```r
    shinyRenderWidget(expr, globeOutput, env, quoted = TRUE)
                            ^~~~~~~~~~~
```
[R/graph.R:83:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L83) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if("igraph" %in% class(edges))
    ^
```
[R/graph.R:85:10:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L85) *warning:* **no visible global function definition for ‘igraph2graphjs’**
```r
    ig = igraph2graphjs(edges)
         ^~~~~~~~~~~~~~
```
[R/graph.R:89:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L89) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(!is.data.frame(edges))
    ^
```
[R/graph.R:91:7:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L91) *style:* **Place a space before left parenthesis, except in a function call.**
```r
    if(is.list(edges))
      ^
```
[R/graph.R:97:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L97) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(is.null(edges$size)) edges$size = 1
    ^
```
[R/graph.R:98:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L98) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(is.null(edges$color)) edges$color = "lightgray"
    ^
```
[R/graph.R:99:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L99) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(!all(c("from", "size", "to", "color") %in% names(edges)))
    ^
```
[R/graph.R:103:26:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L103) *style:* **Put spaces around all infix operators.**
```r
    nodes = data.frame(id=unique(c(edges$from, edges$to)), size=1, color="orange", stringsAsFactors=FALSE)
                        ~^~
```
[R/graph.R:103:64:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L103) *style:* **Put spaces around all infix operators.**
```r
    nodes = data.frame(id=unique(c(edges$from, edges$to)), size=1, color="orange", stringsAsFactors=FALSE)
                                                              ~^~
```
[R/graph.R:103:73:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L103) *style:* **Put spaces around all infix operators.**
```r
    nodes = data.frame(id=unique(c(edges$from, edges$to)), size=1, color="orange", stringsAsFactors=FALSE)
                                                                       ~^~
```
[R/graph.R:103:100:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L103) *style:* **Put spaces around all infix operators.**
```r
    nodes = data.frame(id=unique(c(edges$from, edges$to)), size=1, color="orange", stringsAsFactors=FALSE)
                                                                                ~^~
```
[R/graph.R:106:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L106) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(is.null(nodes$label)) nodes$label = nodes$id
    ^
```
[R/graph.R:107:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L107) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(is.null(nodes$size)) nodes$size = 1
    ^
```
[R/graph.R:108:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L108) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(is.null(nodes$color)) nodes$color = "orange"
    ^
```
[R/graph.R:109:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L109) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(!all(c("id", "size", "label", "color") %in% names(nodes)))
    ^
```
[R/graph.R:112:47:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L112) *style:* **Put spaces around all infix operators.**
```r
  stroke = switch(as.character(stroke), "TRUE"="black", "white")
                                             ~^~
```
[R/graph.R:115:17:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L115) *style:* **Put spaces around all infix operators.**
```r
  x = list(nodes=nodes,
               ~^~
```
[R/graph.R:116:17:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L116) *style:* **Put spaces around all infix operators.**
```r
           edges=edges,
               ~^~
```
[R/graph.R:117:16:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L117) *style:* **Put spaces around all infix operators.**
```r
           main=main,
              ~^~
```
[R/graph.R:118:14:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L118) *style:* **Put spaces around all infix operators.**
```r
           bg=bg,
            ~^~
```
[R/graph.R:119:14:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L119) *style:* **Put spaces around all infix operators.**
```r
           fg=fg,
            ~^~
```
[R/graph.R:120:22:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L120) *style:* **Put spaces around all infix operators.**
```r
           showLabels=showLabels,
                    ~^~
```
[R/graph.R:121:22:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L121) *style:* **Put spaces around all infix operators.**
```r
           attraction=attraction,
                    ~^~
```
[R/graph.R:122:21:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L122) *style:* **Put spaces around all infix operators.**
```r
           repulsion=repulsion,
                   ~^~
```
[R/graph.R:123:22:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L123) *style:* **Put spaces around all infix operators.**
```r
           iterations=max_iterations,
                    ~^~
```
[R/graph.R:124:21:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L124) *style:* **Put spaces around all infix operators.**
```r
           curvature=curvature,
                   ~^~
```
[R/graph.R:125:19:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L125) *style:* **Put spaces around all infix operators.**
```r
           opacity=opacity,
                 ~^~
```
[R/graph.R:126:18:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L126) *style:* **Put spaces around all infix operators.**
```r
           stroke=stroke)
                ~^~
```
[R/graph.R:129:35:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L129) *style:* **Put spaces around all infix operators.**
```r
          x = toJSON(x, auto_unbox=TRUE),
                                 ~^~
```
[R/graph.R:150:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L150) *warning:* **no visible global function definition for ‘shinyRenderWidget’**
```r
    shinyRenderWidget(expr, graphOutput, env, quoted = TRUE)
    ^~~~~~~~~~~~~~~~~
```
[R/graph.R:150:29:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L150) *warning:* **no visible binding for global variable ‘graphOutput’**
```r
    shinyRenderWidget(expr, graphOutput, env, quoted = TRUE)
                            ^~~~~~~~~~~
```
[R/graph.R:180:26:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L180) *style:* **Put spaces around all infix operators.**
```r
    nodes = data.frame(id=unique(c(edges$from, edges$to)))
                        ~^~
```
[R/graph.R:185:18:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L185) *style:* **Commas should always have a space after.**
```r
    idx = edges[,"from"] > edges[,"to"]
                 ^
```
[R/graph.R:185:35:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L185) *style:* **Commas should always have a space after.**
```r
    idx = edges[,"from"] > edges[,"to"]
                                  ^
```
[R/graph.R:186:7:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L186) *style:* **Place a space before left parenthesis, except in a function call.**
```r
    if(any(idx))
      ^
```
[R/graph.R:197:22:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L197) *style:* **Commas should always have a space after.**
```r
  names(id) = nodes[,"id"]
                     ^
```
[R/graph.R:198:7:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L198) *warning:* **no visible global function definition for ‘sparseMatrix’**
```r
  M = sparseMatrix(i=id[as.character(edges$from)], j=id[as.character(edges$to)], x=x, dims=c(N, N), symmetric=symmetric)
      ^~~~~~~~~~~~
```
[R/graph.R:198:21:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L198) *style:* **Put spaces around all infix operators.**
```r
  M = sparseMatrix(i=id[as.character(edges$from)], j=id[as.character(edges$to)], x=x, dims=c(N, N), symmetric=symmetric)
                   ~^~
```
[R/graph.R:198:53:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L198) *style:* **Put spaces around all infix operators.**
```r
  M = sparseMatrix(i=id[as.character(edges$from)], j=id[as.character(edges$to)], x=x, dims=c(N, N), symmetric=symmetric)
                                                   ~^~
```
[R/graph.R:198:83:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L198) *style:* **Put spaces around all infix operators.**
```r
  M = sparseMatrix(i=id[as.character(edges$from)], j=id[as.character(edges$to)], x=x, dims=c(N, N), symmetric=symmetric)
                                                                                ~^~
```
[R/graph.R:198:91:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L198) *style:* **Put spaces around all infix operators.**
```r
  M = sparseMatrix(i=id[as.character(edges$from)], j=id[as.character(edges$to)], x=x, dims=c(N, N), symmetric=symmetric)
                                                                                ~^~
```
[R/graph.R:198:110:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L198) *style:* **Put spaces around all infix operators.**
```r
  M = sparseMatrix(i=id[as.character(edges$from)], j=id[as.character(edges$to)], x=x, dims=c(N, N), symmetric=symmetric)
                                                                                ~^~
```
[R/graph.R:199:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L199) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(!is.null(nodes$label)) colnames(M) = rownames(M) = nodes$label
    ^
```
[R/graph.R:217:7:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L217) *warning:* **no visible global function definition for ‘Matrix’, Did you mean 'matrix'?**
```r
  M = Matrix(M)
      ^~~~~~
```
[R/graph.R:218:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L218) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(!any(grepl("CMatrix", class(M)))) stop("M must be a matrix or CsparseMatrix object")
    ^
```
[R/graph.R:221:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L221) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if("x" %in% slotNames(M)) size = as.numeric(M@x)
    ^
```
[R/graph.R:221:15:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L221) *warning:* **no visible global function definition for ‘slotNames’, Did you mean 'setNames'?**
```r
  if("x" %in% slotNames(M)) size = as.numeric(M@x)
              ^~~~~~~~~
```
[R/graph.R:222:24:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L222) *style:* **Put spaces around all infix operators.**
```r
  nodes = data.frame(id=1:n, label=1:n, size=1, color="orange")
                      ~^~
```
[R/graph.R:222:35:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L222) *style:* **Put spaces around all infix operators.**
```r
  nodes = data.frame(id=1:n, label=1:n, size=1, color="orange")
                                 ~^~
```
[R/graph.R:222:45:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L222) *style:* **Put spaces around all infix operators.**
```r
  nodes = data.frame(id=1:n, label=1:n, size=1, color="orange")
                                           ~^~
```
[R/graph.R:222:54:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L222) *style:* **Put spaces around all infix operators.**
```r
  nodes = data.frame(id=1:n, label=1:n, size=1, color="orange")
                                                    ~^~
```
[R/graph.R:223:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L223) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(!is.null(colnames(M))) nodes$label = colnames(M)
    ^
```
[R/graph.R:225:26:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L225) *style:* **Put spaces around all infix operators.**
```r
  edges = data.frame(from=M@i + 1, to=rep(seq_along(dp), dp), size=size, color="lightgray")
                        ~^~
```
[R/graph.R:225:38:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L225) *style:* **Put spaces around all infix operators.**
```r
  edges = data.frame(from=M@i + 1, to=rep(seq_along(dp), dp), size=size, color="lightgray")
                                    ~^~
```
[R/graph.R:225:67:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L225) *style:* **Put spaces around all infix operators.**
```r
  edges = data.frame(from=M@i + 1, to=rep(seq_along(dp), dp), size=size, color="lightgray")
                                                                 ~^~
```
[R/graph.R:225:79:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L225) *style:* **Put spaces around all infix operators.**
```r
  edges = data.frame(from=M@i + 1, to=rep(seq_along(dp), dp), size=size, color="lightgray")
                                                                             ~^~
```
[R/graph.R:226:13:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L226) *style:* **Put spaces around all infix operators.**
```r
  list(nodes=nodes, edges=edges)
           ~^~
```
[R/graph.R:226:26:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L226) *style:* **Put spaces around all infix operators.**
```r
  list(nodes=nodes, edges=edges)
                        ~^~
```
[R/graph.R:249:24:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L249) *style:* **Put spaces around all infix operators.**
```r
  nodes = data.frame(id=1:igraph::vcount(ig))
                      ~^~
```
[R/graph.R:250:63:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L250) *style:* **Put spaces around all infix operators.**
```r
  vattr = data.frame(igraph::vertex_attr(ig), stringsAsFactors=FALSE)
                                                             ~^~
```
[R/graph.R:251:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L251) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(length(vattr) > 0 && nrow(vattr) == nrow(nodes)) nodes = cbind(nodes, vattr)
    ^
```
[R/graph.R:255:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L255) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(!is.numeric(E))
    ^
```
[R/graph.R:257:7:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L257) *style:* **Place a space before left parenthesis, except in a function call.**
```r
    if(is.null(nodes$label)) stop("can't determine edge list")
      ^
```
[R/graph.R:262:26:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L262) *style:* **Put spaces around all infix operators.**
```r
  edges = data.frame(from=E[,1], to=E[,2], stringAsFactors=FALSE)
                        ~^~
```
[R/graph.R:262:30:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L262) *style:* **Commas should always have a space after.**
```r
  edges = data.frame(from=E[,1], to=E[,2], stringAsFactors=FALSE)
                             ^
```
[R/graph.R:262:36:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L262) *style:* **Put spaces around all infix operators.**
```r
  edges = data.frame(from=E[,1], to=E[,2], stringAsFactors=FALSE)
                                  ~^~
```
[R/graph.R:262:40:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L262) *style:* **Commas should always have a space after.**
```r
  edges = data.frame(from=E[,1], to=E[,2], stringAsFactors=FALSE)
                                       ^
```
[R/graph.R:262:59:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L262) *style:* **Put spaces around all infix operators.**
```r
  edges = data.frame(from=E[,1], to=E[,2], stringAsFactors=FALSE)
                                                         ~^~
```
[R/graph.R:263:61:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L263) *style:* **Put spaces around all infix operators.**
```r
  eattr = data.frame(igraph::edge_attr(ig), stringsAsFactors=FALSE)
                                                           ~^~
```
[R/graph.R:264:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L264) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(length(eattr) > 0 && nrow(eattr) == nrow(edges)) edges = cbind(edges, eattr)
    ^
```
[R/graph.R:269:13:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L269) *style:* **Put spaces around all infix operators.**
```r
  list(edges=edges, nodes=nodes)
           ~^~
```
[R/graph.R:269:26:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/graph.R#L269) *style:* **Put spaces around all infix operators.**
```r
  list(edges=edges, nodes=nodes)
                        ~^~
```
[R/scatterplot.R:176:19:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L176) *style:* **Commas should always have a space after.**
```r
  num.ticks = c(6,6,6),
                  ^
```
[R/scatterplot.R:176:21:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L176) *style:* **Commas should always have a space after.**
```r
  num.ticks = c(6,6,6),
                    ^
```
[R/scatterplot.R:192:7:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L192) *style:* **Place a space before left parenthesis, except in a function call.**
```r
    if(is.matrix(x))
      ^
```
[R/scatterplot.R:200:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L200) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(missing(pch)) pch <- rep("o", nrow(x))
    ^
```
[R/scatterplot.R:201:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L201) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(length(pch) != nrow(x)) pch <- rep_len(pch, nrow(x))
    ^
```
[R/scatterplot.R:207:42:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L207) *style:* **Commas should always have a space after.**
```r
  color <- sub("^(#[[:xdigit:]]{6}+).*$","\\1", color, perl = TRUE)
                                         ^
```
[R/scatterplot.R:208:39:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L208) *style:* **Commas should always have a space after.**
```r
  bg <- sub("^(#[[:xdigit:]]{6}+).*$","\\1", bg, perl = TRUE)
                                      ^
```
[R/scatterplot.R:218:28:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L218) *style:* **Put spaces around all infix operators.**
```r
  x <- x[, c(1, 3, 2), drop=FALSE]
                          ~^~
```
[R/scatterplot.R:229:28:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L229) *style:* **Put spaces around all infix operators.**
```r
  mn <- apply(x[, 1:3, drop=FALSE], 2, min)
                          ~^~
```
[R/scatterplot.R:230:28:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L230) *style:* **Put spaces around all infix operators.**
```r
  mx <- apply(x[, 1:3, drop=FALSE], 2, max)
                          ~^~
```
[R/scatterplot.R:245:29:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L245) *style:* **Put spaces around all infix operators.**
```r
  x[, 1:3] <- (x[, 1:3, drop=FALSE] - rep(mn, each = n)) / (rep(mx - mn, each = n))
                           ~^~
```
[R/scatterplot.R:247:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L247) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(flip.y) x[, 3] = 1 - x[, 3]
    ^
```
[R/scatterplot.R:258:31:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L258) *style:* **Commas should always have a space after.**
```r
    num.ticks = num.ticks[c(1,3,2)]
                              ^
```
[R/scatterplot.R:258:33:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L258) *style:* **Commas should always have a space after.**
```r
    num.ticks = num.ticks[c(1,3,2)]
                                ^
```
[R/scatterplot.R:260:18:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L260) *style:* **Put spaces around all infix operators.**
```r
    t1 = seq(from=mn[1], to=mx[1], length.out=num.ticks[1])
                ~^~
```
[R/scatterplot.R:260:28:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L260) *style:* **Put spaces around all infix operators.**
```r
    t1 = seq(from=mn[1], to=mx[1], length.out=num.ticks[1])
                          ~^~
```
[R/scatterplot.R:260:46:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L260) *style:* **Put spaces around all infix operators.**
```r
    t1 = seq(from=mn[1], to=mx[1], length.out=num.ticks[1])
                                            ~^~
```
[R/scatterplot.R:262:18:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L262) *style:* **Put spaces around all infix operators.**
```r
    t2 = seq(from=mn[2], to=mx[2], length.out=num.ticks[2])
                ~^~
```
[R/scatterplot.R:262:28:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L262) *style:* **Put spaces around all infix operators.**
```r
    t2 = seq(from=mn[2], to=mx[2], length.out=num.ticks[2])
                          ~^~
```
[R/scatterplot.R:262:46:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L262) *style:* **Put spaces around all infix operators.**
```r
    t2 = seq(from=mn[2], to=mx[2], length.out=num.ticks[2])
                                            ~^~
```
[R/scatterplot.R:264:18:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L264) *style:* **Put spaces around all infix operators.**
```r
    t3 = seq(from=mn[3], to=mx[3], length.out=num.ticks[3])
                ~^~
```
[R/scatterplot.R:264:28:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L264) *style:* **Put spaces around all infix operators.**
```r
    t3 = seq(from=mn[3], to=mx[3], length.out=num.ticks[3])
                          ~^~
```
[R/scatterplot.R:264:46:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L264) *style:* **Put spaces around all infix operators.**
```r
    t3 = seq(from=mn[3], to=mx[3], length.out=num.ticks[3])
                                            ~^~
```
[R/scatterplot.R:266:7:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L266) *style:* **Place a space before left parenthesis, except in a function call.**
```r
    if(flip.y) t3 = t3[length(t3):1]
      ^
```
[R/scatterplot.R:268:23:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L268) *style:* **Commas should always have a space after.**
```r
    pfmt = function(x,d=2)
                      ^
```
[R/scatterplot.R:270:28:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L270) *style:* **Commas should always have a space after.**
```r
      ans = sprintf("%.2f",x)
                           ^
```
[R/scatterplot.R:272:9:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L272) *style:* **Place a space before left parenthesis, except in a function call.**
```r
      if(any(i))
        ^
```
[R/scatterplot.R:274:33:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L274) *style:* **Commas should always have a space after.**
```r
        ans[i] = sprintf("%.2e",x)
                                ^
```
[R/scatterplot.R:282:7:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L282) *style:* **Place a space before left parenthesis, except in a function call.**
```r
    if(!is.null(x.ticklabs)) options$xticklab = x.ticklabs
      ^
```
[R/scatterplot.R:283:7:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L283) *style:* **Place a space before left parenthesis, except in a function call.**
```r
    if(!is.null(y.ticklabs)) options$zticklab = y.ticklabs
      ^
```
[R/scatterplot.R:284:7:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L284) *style:* **Place a space before left parenthesis, except in a function call.**
```r
    if(!is.null(z.ticklabs)) options$yticklab = z.ticklabs
      ^
```
[R/scatterplot.R:312:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L312) *warning:* **no visible global function definition for ‘shinyWidgetOutput’**
```r
    shinyWidgetOutput(outputId, "scatterplotThree", width, height, package = "threejs")
    ^~~~~~~~~~~~~~~~~
```
[R/scatterplot.R:321:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L321) *warning:* **no visible global function definition for ‘shinyRenderWidget’**
```r
    shinyRenderWidget(expr, scatterplotThreeOutput, env, quoted = TRUE)
    ^~~~~~~~~~~~~~~~~
```
[R/scatterplot.R:321:29:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L321) *warning:* **no visible binding for global variable ‘scatterplotThreeOutput’**
```r
    shinyRenderWidget(expr, scatterplotThreeOutput, env, quoted = TRUE)
                            ^~~~~~~~~~~~~~~~~~~~~~
```
[R/scatterplot.R:331:9:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L331) *style:* **Place a space before left parenthesis, except in a function call.**
```r
      if(is.matrix(x))
        ^
```
[R/scatterplot.R:341:44:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L341) *style:* **Commas should always have a space after.**
```r
    color <- sub("^#([[:xdigit:]]{6}+).*$","\\1", color, perl = TRUE)
                                           ^
```
[R/scatterplot.R:344:30:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L344) *style:* **Put spaces around all infix operators.**
```r
    x <- x[, c(1, 3, 2), drop=FALSE]
                            ~^~
```
[R/scatterplot.R:346:31:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L346) *style:* **Put spaces around all infix operators.**
```r
    x[, 1:3] <- (x[, 1:3, drop=FALSE] - rep(options$mn, each = n)) / (rep(options$mx - options$mn, each = n))
                             ~^~
```
[R/scatterplot.R:353:34:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L353) *style:* **Commas should always have a space after.**
```r
    x <- as.vector(t(signif(data,signif)))
                                 ^
```
[R/scatterplot.R:358:90:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L358) *style:* **Put spaces around all infix operators.**
```r
      local_options$size <- c(rep(options$size, length.out = n_old), rep(size, length.out=n))
                                                                                ~^~
```
[R/scatterplot.R:363:61:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L363) *style:* **Put spaces around all infix operators.**
```r
      local_options$color <- c(rep(options$color, length.out=n_old), rep(color, length.out=n))
                                                           ~^~
```
[R/scatterplot.R:363:91:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L363) *style:* **Put spaces around all infix operators.**
```r
      local_options$color <- c(rep(options$color, length.out=n_old), rep(color, length.out=n))
                                                                                ~^~
```
[R/scatterplot.R:368:57:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L368) *style:* **Put spaces around all infix operators.**
```r
      local_options$pch <- c(rep(options$pch, length.out=n_old), rep(pch, length.out=n))
                                                       ~^~
```
[R/scatterplot.R:368:85:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/scatterplot.R#L368) *style:* **Put spaces around all infix operators.**
```r
      local_options$pch <- c(rep(options$pch, length.out=n_old), rep(pch, length.out=n))
                                                                                ~^~
```
[R/utilities.R:43:22:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/utilities.R#L43) *style:* **Commas should always have a space after.**
```r
  ext = gsub(".*\\.","", data)
                     ^
```
[R/utilities.R:44:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/utilities.R#L44) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(grepl("^http", data))
    ^
```
[R/utilities.R:46:23:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/utilities.R#L46) *style:* **Put spaces around all infix operators.**
```r
    u = url(data, open="rb")
                     ~^~
```
[R/utilities.R:49:29:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/utilities.R#L49) *style:* **Put spaces around all infix operators.**
```r
    writeBin(readBin(u, what="raw", n=10e6), data, useBytes=TRUE)
                           ~^~
```
[R/utilities.R:49:38:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/utilities.R#L49) *style:* **Put spaces around all infix operators.**
```r
    writeBin(readBin(u, what="raw", n=10e6), data, useBytes=TRUE)
                                    ~^~
```
[R/utilities.R:49:60:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/utilities.R#L49) *style:* **Put spaces around all infix operators.**
```r
    writeBin(readBin(u, what="raw", n=10e6), data, useBytes=TRUE)
                                                          ~^~
```
[R/utilities.R:53:5:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/utilities.R#L53) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(nchar(ext) < 1) ext = "png"
    ^
```
[R/utilities.R:54:9:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/utilities.R#L54) *warning:* **no visible global function definition for ‘dataURI’**
```r
  img = dataURI(file=data, mime=sprintf("image/%s", ext))
        ^~~~~~~
```
[R/utilities.R:54:21:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/utilities.R#L54) *style:* **Put spaces around all infix operators.**
```r
  img = dataURI(file=data, mime=sprintf("image/%s", ext))
                   ~^~
```
[R/utilities.R:54:32:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/utilities.R#L54) *style:* **Put spaces around all infix operators.**
```r
  img = dataURI(file=data, mime=sprintf("image/%s", ext))
                              ~^~
```
[R/utilities.R:55:11:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/utilities.R#L55) *style:* **Put spaces around all infix operators.**
```r
  list(img=img, dataURI=TRUE)
         ~^~
```
[R/utilities.R:55:24:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/R/utilities.R#L55) *style:* **Put spaces around all infix operators.**
```r
  list(img=img, dataURI=TRUE)
                      ~^~
```
[tests/threejs.R:4:31:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/tests/threejs.R#L4) *style:* **Commas should always have a space after.**
```r
d = system.file("htmlwidgets",package="threejs")
                              ^
```
[tests/threejs.R:4:38:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/tests/threejs.R#L4) *style:* **Put spaces around all infix operators.**
```r
d = system.file("htmlwidgets",package="threejs")
                                    ~^~
```
[tests/threejs.R:6:74:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/tests/threejs.R#L6) *style:* **Put spaces around all infix operators.**
```r
                 readLines(paste(d, grep("three.min.js", dir(d, recursive=TRUE), value=TRUE), sep="/"), n=5)) > 0)
                                                                        ~^~
```
[tests/threejs.R:6:87:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/tests/threejs.R#L6) *style:* **Put spaces around all infix operators.**
```r
                 readLines(paste(d, grep("three.min.js", dir(d, recursive=TRUE), value=TRUE), sep="/"), n=5)) > 0)
                                                                                ~^~
```
[tests/threejs.R:6:98:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/tests/threejs.R#L6) *style:* **Put spaces around all infix operators.**
```r
                 readLines(paste(d, grep("three.min.js", dir(d, recursive=TRUE), value=TRUE), sep="/"), n=5)) > 0)
                                                                                ~^~
```
[tests/threejs.R:6:106:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/tests/threejs.R#L6) *style:* **Put spaces around all infix operators.**
```r
                 readLines(paste(d, grep("three.min.js", dir(d, recursive=TRUE), value=TRUE), sep="/"), n=5)) > 0)
                                                                                ~^~
```
[tests/threejs.R:7:3:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/tests/threejs.R#L7) *style:* **Place a space before left parenthesis, except in a function call.**
```r
if(!ok) stop("The threejs package requires a modified version of the three.min.js JavaScript library. See the package README.md.")
  ^
```
[tests/threejs.R:12:26:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/tests/threejs.R#L12) *style:* **Put spaces around all infix operators.**
```r
i <- sample(3, N, replace=TRUE)
                        ~^~
```
[tests/threejs.R:13:31:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/tests/threejs.R#L13) *style:* **Put spaces around all infix operators.**
```r
x <- matrix(rnorm(N * 3), ncol=3)
                             ~^~
```
[tests/threejs.R:15:24:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/tests/threejs.R#L15) *style:* **Put spaces around all infix operators.**
```r
scatterplot3js(x, color=rainbow(N), labels=lab[i], size=i, renderer="canvas")
                      ~^~
```
[tests/threejs.R:15:43:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/tests/threejs.R#L15) *style:* **Put spaces around all infix operators.**
```r
scatterplot3js(x, color=rainbow(N), labels=lab[i], size=i, renderer="canvas")
                                         ~^~
```
[tests/threejs.R:15:56:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/tests/threejs.R#L15) *style:* **Put spaces around all infix operators.**
```r
scatterplot3js(x, color=rainbow(N), labels=lab[i], size=i, renderer="canvas")
                                                      ~^~
```
[tests/threejs.R:15:68:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/tests/threejs.R#L15) *style:* **Put spaces around all infix operators.**
```r
scatterplot3js(x, color=rainbow(N), labels=lab[i], size=i, renderer="canvas")
                                                                  ~^~
```
[tests/threejs.R:20:18:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/tests/threejs.R#L20) *style:* **Commas should always have a space after.**
```r
scatterplot3js(x,y,z, color=rainbow(length(z)),
                 ^
```
[tests/threejs.R:20:20:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/tests/threejs.R#L20) *style:* **Commas should always have a space after.**
```r
scatterplot3js(x,y,z, color=rainbow(length(z)),
                   ^
```
[tests/threejs.R:20:28:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/tests/threejs.R#L20) *style:* **Put spaces around all infix operators.**
```r
scatterplot3js(x,y,z, color=rainbow(length(z)),
                          ~^~
```
[tests/threejs.R:21:13:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/tests/threejs.R#L21) *style:* **Put spaces around all infix operators.**
```r
      labels=sprintf("x=%.2f, y=%.2f, z=%.2f", x, y, z))
           ~^~
```
[tests/threejs.R:23:18:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/tests/threejs.R#L23) *style:* **Commas should always have a space after.**
```r
scatterplot3js(x,y,z, color=rainbow(length(z)), axisLabels=c("a","b","c"))
                 ^
```
[tests/threejs.R:23:20:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/tests/threejs.R#L23) *style:* **Commas should always have a space after.**
```r
scatterplot3js(x,y,z, color=rainbow(length(z)), axisLabels=c("a","b","c"))
                   ^
```
[tests/threejs.R:23:28:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/tests/threejs.R#L23) *style:* **Put spaces around all infix operators.**
```r
scatterplot3js(x,y,z, color=rainbow(length(z)), axisLabels=c("a","b","c"))
                          ~^~
```
[tests/threejs.R:23:59:](https://github.com/bwlewis/rthreejs/blob/0bd435d4fc2be3a6ba2dbf8e08fc5ba868688095/tests/threejs.R#L23) *style:* **Put spaces around all infix operators.**
```r
scatterplot3js(x,y,z, color=rainbow(length(z)), axisLabels=c("a","b","c"))


jzpdifjpzjf


> S: I'm sorry to know that you have to support my themes, you should not be bothered with this. People should know they can ask me here as much as they want.

Nah, don't worry about that. I have to support every ideas of every users anyway ;). You probably have a really great time porting all your changes on top of the API breaks I just pushed to everybody :P.

> If you can instruct me on the correct way to modularize, I'd be happy to do it.

At some point my monolithic config was just enormous and I created all my modules. You also created a couple good one. There is no magic bullets. Adding more theme variables usually allow to move things into the themes. The wibar and titlebar are good fit for that. If you move the "visual concerns" into the theme, that leaves you the "workflow concerns" to deal with. Personally, I have the "Collision" (navigation), "Tyrannical" (client/tag management) and "Repetitive" (macros and dynamic shortcuts) modules for the workflow elements. Both Repetitive and Collision add their own keybindings are runtime by just including them, no config changes required.

As for the variables, they can often go in separate files or modules too. We removed a lot of the global variables the older versions used to have, you can now store variables in C-API objects. As for the signals and behavior, the "request" API is designed to replace "business delegates" from modules. The new version of Tyrannical has been rewritten to make use of that.

So in my opinion, remove the wibar and titlebar from rc.lua and move them to the theme file, everything else can be made into modules.

> PPS: I've always wanted to copycat some of your stuff (like the fancy cairo taglists) but currently my free time is getting shorter and shorter.

You don't need to copycat them, the code is free ;). Also, I improved the default taglist and tasklist a lot when to comes to theme options. The [shape](https://awesomewm.org/apidoc/libraries/gears.shape.html) API is very powerful. I also have a module to enable "clean" powerline like taglist/tasklist on GitHub. It can be used on 4.0 by adding the file in `~/.config/awesome` (see https://github.com/awesomeWM/awesome/issues/1149 and https://github.com/awesomeWM/awesome/pull/1153). My own "Radical" theme module has much more theme variables, but it is also a very complex layered monster.

P.S: You have have any widgets that could be merged upstream? I look to merge all "real" widgets. My definition for real is "draw things itself and don't depend on any external code or other widgets". I merged most of mines already (https://awesomewm.org/apidoc/documentation/03-declarative-layout.md.html), but I would eventually like to merge all "real" widgets so users don't have to load modules for them. 99% of users currently either take your base config or stay with the default one. This isn't a very desirable situation. We worked hard to improve the documentation, but we also need to make common things easier.


Won't tag 17.01 until tomorrow morning (~10 hours from now) - @kiates, if you run into any last-minute XACT trouble with the current build, let me know ASAP so we can get it into the final tag.


Happy New Year :)

`eventTypeField` also needs a `maxWidth`

![image](https://cloud.githubusercontent.com/assets/5688080/21580143/15449b1a-d001-11e6-95af-881dab00afa8.png)