1 /* 2 * RProjectConfig.java 3 * 4 * Copyright (C) 2021 by RStudio, PBC 5 * 6 * Unless you have received this program directly from RStudio pursuant 7 * to the terms of a commercial license agreement with RStudio, then 8 * this program is licensed to you under the terms of version 3 of the 9 * GNU Affero General Public License. This program is distributed WITHOUT 10 * ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING THOSE OF NON-INFRINGEMENT, 11 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Please refer to the 12 * AGPL (http://www.gnu.org/licenses/agpl-3.0.txt) for more details. 13 * 14 */ 15 package org.rstudio.studio.client.projects.model; 16 17 import java.util.ArrayList; 18 19 import org.rstudio.core.client.StringUtil; 20 21 import com.google.gwt.core.client.JavaScriptObject; 22 import com.google.gwt.core.client.JsArrayString; 23 24 public class RProjectConfig extends JavaScriptObject 25 { 26 public static final int DEFAULT_VALUE = 0; 27 public static final int YES_VALUE = 1; 28 public static final int NO_VALUE = 2; 29 public static final int ASK_VALUE = 3; 30 RProjectConfig()31 protected RProjectConfig() 32 { 33 } 34 createEmpty()35 public native static final RProjectConfig createEmpty() /*-{ 36 var config = new Object(); 37 config.version = 1.0; 38 return config; 39 }-*/; 40 getVersion()41 public native final double getVersion() /*-{ 42 return this.version; 43 }-*/; 44 getRVersion()45 public native final RProjectRVersion getRVersion() /*-{ 46 return this.r_version; 47 }-*/; 48 setRVersion(RProjectRVersion rVersion)49 public native final void setRVersion(RProjectRVersion rVersion) /*-{ 50 this.r_version = rVersion; 51 }-*/; 52 getRestoreWorkspace()53 public native final int getRestoreWorkspace() /*-{ 54 return this.restore_workspace; 55 }-*/; 56 setRestoreWorkspace(int restoreWorkspace)57 public native final void setRestoreWorkspace(int restoreWorkspace) /*-{ 58 this.restore_workspace = restoreWorkspace; 59 }-*/; 60 getSaveWorkspace()61 public native final int getSaveWorkspace() /*-{ 62 return this.save_workspace; 63 }-*/; 64 setSaveWorkspace(int saveWorkspace)65 public native final void setSaveWorkspace(int saveWorkspace) /*-{ 66 this.save_workspace = saveWorkspace; 67 }-*/; 68 getAlwaysSaveHistory()69 public native final int getAlwaysSaveHistory() /*-{ 70 return this.always_save_history; 71 }-*/; 72 setAlwaysSaveHistory(int alwaysSaveHistory)73 public native final void setAlwaysSaveHistory(int alwaysSaveHistory) /*-{ 74 this.always_save_history = alwaysSaveHistory; 75 }-*/; 76 getQuitChildProcessesOnExit()77 public native final int getQuitChildProcessesOnExit() /*-{ 78 return this.quit_child_processes_on_exit; 79 }-*/; 80 setQuitChildProcessesOnExit(int quitChildProcessesOnExit)81 public native final void setQuitChildProcessesOnExit(int quitChildProcessesOnExit) /*-{ 82 this.quit_child_processes_on_exit = quitChildProcessesOnExit; 83 }-*/; 84 getDisableExecuteRprofile()85 public native final boolean getDisableExecuteRprofile() /*-{ 86 return this.disable_execute_rprofile; 87 }-*/; 88 setDisableExecuteRprofile(boolean disableExecuteRprofile)89 public native final void setDisableExecuteRprofile(boolean disableExecuteRprofile) /*-{ 90 this.disable_execute_rprofile = disableExecuteRprofile; 91 }-*/; 92 getEnableCodeIndexing()93 public native final boolean getEnableCodeIndexing() /*-{ 94 return this.enable_code_indexing; 95 }-*/; 96 setEnableCodeIndexing(boolean enableCodeIndexing)97 public native final void setEnableCodeIndexing(boolean enableCodeIndexing) /*-{ 98 this.enable_code_indexing = enableCodeIndexing; 99 }-*/; 100 getUseSpacesForTab()101 public native final boolean getUseSpacesForTab() /*-{ 102 return this.use_spaces_for_tab; 103 }-*/; 104 setUseSpacesForTab(boolean useSpacesForTab)105 public native final void setUseSpacesForTab(boolean useSpacesForTab) /*-{ 106 this.use_spaces_for_tab = useSpacesForTab; 107 }-*/; 108 getNumSpacesForTab()109 public native final int getNumSpacesForTab() /*-{ 110 return this.num_spaces_for_tab; 111 }-*/; 112 setNumSpacesForTab(int numSpacesForTab)113 public native final void setNumSpacesForTab(int numSpacesForTab) /*-{ 114 this.num_spaces_for_tab = numSpacesForTab; 115 }-*/; 116 getAutoAppendNewline()117 public native final boolean getAutoAppendNewline() /*-{ 118 return this.auto_append_newline; 119 }-*/; 120 setAutoAppendNewline(boolean autoAppendNewline)121 public native final void setAutoAppendNewline(boolean autoAppendNewline) /*-{ 122 this.auto_append_newline = autoAppendNewline; 123 }-*/; 124 getStripTrailingWhitespace()125 public native final boolean getStripTrailingWhitespace() /*-{ 126 return this.strip_trailing_whitespace; 127 }-*/; 128 setStripTrailingWhitespace(boolean stripTrailingWhitespace)129 public native final void setStripTrailingWhitespace(boolean stripTrailingWhitespace) /*-{ 130 this.strip_trailing_whitespace = stripTrailingWhitespace; 131 }-*/; 132 getLineEndings()133 public native final int getLineEndings() /*-{ 134 return this.line_endings; 135 }-*/; 136 setLineEndings(int lineEndings)137 public native final void setLineEndings(int lineEndings) /*-{ 138 this.line_endings = lineEndings; 139 }-*/; 140 getEncoding()141 public native final String getEncoding() /*-{ 142 return this.default_encoding; 143 }-*/; 144 setEncoding(String defaultEncoding)145 public native final void setEncoding(String defaultEncoding) /*-{ 146 this.default_encoding = defaultEncoding; 147 }-*/; 148 getDefaultSweaveEngine()149 public native final String getDefaultSweaveEngine() /*-{ 150 return this.default_sweave_engine; 151 }-*/; 152 setDefaultSweaveEngine(String defaultSweaveEngine)153 public native final void setDefaultSweaveEngine(String defaultSweaveEngine) /*-{ 154 this.default_sweave_engine = defaultSweaveEngine; 155 }-*/; 156 getDefaultLatexProgram()157 public native final String getDefaultLatexProgram() /*-{ 158 return this.default_latex_program; 159 }-*/; 160 setDefaultLatexProgram(String defaultLatexProgram)161 public native final void setDefaultLatexProgram(String defaultLatexProgram) /*-{ 162 this.default_latex_program = defaultLatexProgram; 163 }-*/; 164 getRootDocument()165 public native final String getRootDocument() /*-{ 166 return this.root_document; 167 }-*/; 168 setRootDocument(String rootDocument)169 public native final void setRootDocument(String rootDocument) /*-{ 170 this.root_document = rootDocument; 171 }-*/; 172 173 public static final String BUILD_TYPE_NONE = "None"; 174 public static final String BUILD_TYPE_PACKAGE = "Package"; 175 public static final String BUILD_TYPE_MAKEFILE = "Makefile"; 176 public static final String BUILD_TYPE_WEBSITE = "Website"; 177 public static final String BUILD_TYPE_CUSTOM = "Custom"; 178 getBuildType()179 public native final String getBuildType() /*-{ 180 return this.build_type; 181 }-*/; 182 setBuildType(String buildType)183 public native final void setBuildType(String buildType) /*-{ 184 this.build_type = buildType; 185 }-*/; 186 getPackageUseDevtools()187 public native final boolean getPackageUseDevtools() /*-{ 188 return this.package_use_devtools; 189 }-*/; 190 setPackageUseDevtools(boolean useDevtools)191 public native final void setPackageUseDevtools(boolean useDevtools) /*-{ 192 this.package_use_devtools = useDevtools; 193 }-*/; 194 getPackagePath()195 public native final String getPackagePath() /*-{ 196 return this.package_path; 197 }-*/; 198 setPackagePath(String packagePath)199 public native final void setPackagePath(String packagePath) /*-{ 200 this.package_path = packagePath; 201 }-*/; 202 getPackageInstallArgs()203 public native final String getPackageInstallArgs() /*-{ 204 return this.package_install_args; 205 }-*/; 206 setPackageInstallArgs(String installArgs)207 public native final void setPackageInstallArgs(String installArgs) /*-{ 208 this.package_install_args = installArgs; 209 }-*/; 210 getPackageBuildArgs()211 public native final String getPackageBuildArgs() /*-{ 212 return this.package_build_args; 213 }-*/; 214 setPackageBuildArgs(String buildArgs)215 public native final void setPackageBuildArgs(String buildArgs) /*-{ 216 this.package_build_args = buildArgs; 217 }-*/; 218 219 getPackageBuildBinaryArgs()220 public native final String getPackageBuildBinaryArgs() /*-{ 221 return this.package_build_binary_args; 222 }-*/; 223 setPackageBuildBinaryArgs(String buildArgs)224 public native final void setPackageBuildBinaryArgs(String buildArgs) /*-{ 225 this.package_build_binary_args = buildArgs; 226 }-*/; 227 getPackageCheckArgs()228 public native final String getPackageCheckArgs() /*-{ 229 return this.package_check_args; 230 }-*/; 231 setPackageCheckArgs(String checkArgs)232 public native final void setPackageCheckArgs(String checkArgs) /*-{ 233 this.package_check_args = checkArgs; 234 }-*/; 235 236 hasPackageRoxygenize()237 public final boolean hasPackageRoxygenize() 238 { 239 return !StringUtil.isNullOrEmpty(getPackageRoxygenizeNative()); 240 } 241 getPackageRoxygenzieRd()242 public final boolean getPackageRoxygenzieRd() 243 { 244 return getPackageRoxygenize(ROXYGENIZE_RD); 245 } 246 getPackageRoxygenizeNamespace()247 public final boolean getPackageRoxygenizeNamespace() 248 { 249 return getPackageRoxygenize(ROXYGENIZE_NAMESPACE); 250 } 251 getPackageRoxygenizeCollate()252 public final boolean getPackageRoxygenizeCollate() 253 { 254 return getPackageRoxygenize(ROXYGENIZE_COLLATE); 255 } 256 getPackageRoxygenizeVignette()257 public final boolean getPackageRoxygenizeVignette() 258 { 259 return getPackageRoxygenize(ROXYGENIZE_VIGNETTE); 260 } 261 setPackageRoxygenize(boolean rd, boolean collate, boolean namespace, boolean vignette)262 public final void setPackageRoxygenize(boolean rd, 263 boolean collate, 264 boolean namespace, 265 boolean vignette) 266 { 267 ArrayList<String> roclets = new ArrayList<>(); 268 if (rd) 269 roclets.add(ROXYGENIZE_RD); 270 if (collate) 271 roclets.add(ROXYGENIZE_COLLATE); 272 if (namespace) 273 roclets.add(ROXYGENIZE_NAMESPACE); 274 if (vignette) 275 roclets.add(ROXYGENIZE_VIGNETTE); 276 277 String roxygenize = StringUtil.join(roclets, ROXYGENIZE_DELIM); 278 setPackageRoxygenizeNative(roxygenize); 279 } 280 281 private static final String ROXYGENIZE_RD = "rd"; 282 private static final String ROXYGENIZE_COLLATE = "collate"; 283 private static final String ROXYGENIZE_NAMESPACE = "namespace"; 284 private static final String ROXYGENIZE_VIGNETTE = "vignette"; 285 private static final String ROXYGENIZE_DELIM = ","; 286 getPackageRoxygenize(String roclet)287 private final boolean getPackageRoxygenize(String roclet) 288 { 289 String[] roclets = getPackageRoxygenizeNative().split(ROXYGENIZE_DELIM); 290 for (int i=0; i<roclets.length; i++) 291 if (roclets[i] == roclet) 292 return true; 293 294 return false; 295 } 296 getPackageRoxygenizeNative()297 private native final String getPackageRoxygenizeNative() /*-{ 298 return this.package_roxygenize; 299 }-*/; 300 setPackageRoxygenizeNative(String roxygenize)301 private native final void setPackageRoxygenizeNative(String roxygenize) /*-{ 302 this.package_roxygenize = roxygenize; 303 }-*/; 304 getMakefilePath()305 public native final String getMakefilePath() /*-{ 306 return this.makefile_path; 307 }-*/; 308 setMakefilePath(String makefilePath)309 public native final void setMakefilePath(String makefilePath) /*-{ 310 this.makefile_path = makefilePath; 311 }-*/; 312 getWebsitePath()313 public native final String getWebsitePath() /*-{ 314 return this.website_path; 315 }-*/; 316 setWebsitePath(String websitePath)317 public native final void setWebsitePath(String websitePath) /*-{ 318 this.website_path = websitePath; 319 }-*/; 320 getCustomScriptPath()321 public native final String getCustomScriptPath() /*-{ 322 return this.custom_script_path; 323 }-*/; 324 setCustomScriptPath(String customScriptPath)325 public native final void setCustomScriptPath(String customScriptPath) /*-{ 326 this.custom_script_path = customScriptPath; 327 }-*/; 328 getTutorialPath()329 public native final String getTutorialPath() /*-{ 330 return this.tutorial_path; 331 }-*/; 332 setTutorialPath(String tutorialPath)333 public native final void setTutorialPath(String tutorialPath) /*-{ 334 this.tutorial_path = tutorialPath; 335 }-*/; 336 337 public static final String MARKDOWN_WRAP_DEFAULT = "Default"; 338 public static final String MARKDOWN_WRAP_NONE = "None"; 339 public static final String MARKDOWN_WRAP_COLUMN = "Column"; 340 public static final String MARKDOWN_WRAP_SENTENCE = "Sentence"; 341 getMarkdownWrap()342 public native final String getMarkdownWrap() /*-{ 343 return this.markdown_wrap; 344 }-*/; 345 setMarkdownWrap(String wrap)346 public native final void setMarkdownWrap(String wrap) /*-{ 347 this.markdown_wrap = wrap; 348 }-*/; 349 getMarkdownWrapAtColumn()350 public native final int getMarkdownWrapAtColumn() /*-{ 351 return this.markdown_wrap_at_column; 352 }-*/; 353 setMarkdownWrapAtColumn(int column)354 public native final void setMarkdownWrapAtColumn(int column) /*-{ 355 this.markdown_wrap_at_column = column; 356 }-*/; 357 358 public static final String MARKDOWN_REFERENCES_DEFAULT = "Default"; 359 public static final String MARKDOWN_REFERENCES_BLOCK = "Block"; 360 public static final String MARKDOWN_REFERENCES_SECTION = "Section"; 361 public static final String MARKDOWN_REFERENCES_DOCUMENT = "Document"; 362 getMarkdownReferences()363 public native final String getMarkdownReferences() /*-{ 364 return this.markdown_references; 365 }-*/; 366 setMarkdownReferences(String references)367 public native final void setMarkdownReferences(String references) /*-{ 368 this.markdown_references = references; 369 }-*/; 370 getMarkdownCanonical()371 public native final int getMarkdownCanonical() /*-{ 372 return this.markdown_canonical; 373 }-*/; 374 setMarkdownCanonical(int canonical)375 public native final void setMarkdownCanonical(int canonical) /*-{ 376 this.markdown_canonical = canonical; 377 }-*/; 378 getPythonType()379 public native final String getPythonType() /*-{ 380 return this.python_type; 381 }-*/; 382 setPythonType(String type)383 public native final void setPythonType(String type) /*-{ 384 this.python_type = type; 385 }-*/; 386 getPythonVersion()387 public native final String getPythonVersion() /*-{ 388 return this.python_version; 389 }-*/; 390 setPythonVersion(String version)391 public native final void setPythonVersion(String version) /*-{ 392 this.python_version = version; 393 }-*/; 394 getPythonPath()395 public native final String getPythonPath() /*-{ 396 return this.python_path; 397 }-*/; 398 setPythonPath(String path)399 public native final void setPythonPath(String path) /*-{ 400 this.python_path = path; 401 }-*/; 402 getSpellingDictionary()403 public native final String getSpellingDictionary() /*-{ 404 return this.spelling_dictionary; 405 }-*/; 406 setSpellingDictionary(String dictionary)407 public native final void setSpellingDictionary(String dictionary) /*-{ 408 this.spelling_dictionary = dictionary; 409 }-*/; 410 getZoteroLibraries()411 public native final JsArrayString getZoteroLibraries() /*-{ 412 return this.zotero_libraries || null; 413 }-*/; 414 setZoteroLibraries(JsArrayString libraries)415 public native final void setZoteroLibraries(JsArrayString libraries) /*-{ 416 this.zotero_libraries = libraries; 417 }-*/; 418 419 420 421 } 422