51
$\begingroup$

CurrentValue can be used to poll the state of numerous system values such as the mouse position. Its help page doesn't list all possible items, though. An item like "TooltipFontFamily" isn't listed but it works nevertheless:

In[49]:= CurrentValue["TooltipFontFamily"] Out[49]= "Segoe UI" 

My question is: where can I find a (more) complete list of items that can be used with CurrentValue. Or, alternatively, how could I programmatically generate such a list?


EDIT

Based on John Fultz' answer I wrote the following:

Union[ Flatten[ Cases[ Import[#], HoldPattern[CurrentValue[a_]] :> a, Infinity ] & /@ FileNames[#] & /@ { FileNameJoin[{$InstallationDirectory, "SystemFiles", "FrontEnd", "StyleSheets", "*.nb"}], FileNameJoin[{$InstallationDirectory, "SystemFiles", "FrontEnd", "TextResources", "*.nb"}], FileNameJoin[{$InstallationDirectory, "SystemFiles", "FrontEnd", "SystemResources", "*.nb"}] }, 2 ] ] 

and got this:

(* ==> {CommandKey, ControlKey, ControlsFontFamily, ControlsFontSize, DefaultButtonSize, DefaultNewGraphics, HyperlinkModifierKey, LicenseValid, MenuFontFamily, MouseButtonTest, MouseClickCount, MouseOver, NotebookSelected, OptionKey, PanelBackground, PanelFontFamily, PanelFontSize, ScreenArea, ShiftKey, ToolbarBackground, TooltipFontFamily, TooltipFontSize, TooltipFrameMargins, Enabled, Language, {ControlsFontSize, Large}, {ControlsFontSize, Medium}, {ControlsFontSize, Small}, {SystemColor, DialogText}, {SystemColor,DialogTextDisabled}, {SystemColor, MenuText}, {SystemColor, Tooltip}, {SystemColor, TooltipFrame}, {SystemColor, TooltipText}, {TaggingRules, Highlight}, {ScreenRectangle, 1, 2}, {ScreenRectangle, 2, 2}} *) 

in addition to a message complaining about:

Syntax::sntufn: Unknown unicode longname NumberComma. 

Other items known by CurrentValue (not in the list above) that were used in answers/comments here:

  • As per this comment by celtschk:

    {"Thickness", "Opacity", "Dashing", "FontFamily", "FontSize", "FontSlant", "FontWeight", "FontColor", "FontOpacity"} 
$\endgroup$
8
  • 1
    $\begingroup$ given the comments to answers below I think a more interesting, and separate, general question would be how do you find out a list of all the built in option strings. $\endgroup$ Commented Feb 6, 2012 at 0:40
  • $\begingroup$ out of curiosity is anyone planning to ask Wolfram about how to find all these strings? I will but don't want to double up if someone else already has or is about to? $\endgroup$ Commented Feb 6, 2012 at 3:56
  • 1
    $\begingroup$ ok I logged the question -- finding all option strings/string options with tech support $\endgroup$ Commented Feb 6, 2012 at 9:08
  • 2
    $\begingroup$ @SjoerdC.deVries I got a fast reply: "Since these do not have any context like a symbol would, there isn't any real programmatic way of accumulating them. It's possible to scrape the documentation for these, but not very simply." ...but looks like John Fultz has provided a pointer below. $\endgroup$ Commented Feb 6, 2012 at 20:53
  • 1
    $\begingroup$ Ah, I see, thank you. $\endgroup$ Commented Jun 18, 2012 at 12:16

9 Answers 9

36
$\begingroup$

Other answers have already suggested ways of querying options. There's no way of systematically generating a list of all string values, but it's not too difficult to put together a list of all of the values which are used by Wolfram Research in Mathematica itself. If you look in the various files in these locations:

  • $InstallationDirectory/SystemFiles/FrontEnd/StyleSheets
  • $InstallationDirectory/SystemFiles/FrontEnd/TextResources
  • $InstallationDirectory/SystemFiles/FrontEnd/SystemResources

for instances of CurrentValue, you'll get a pretty good list of what is in active use by Wolfram Research developers at any given time. Most of the undocumented string values are created specifically to fulfill a purpose required by one of these files, so that's a pretty good list.

There may be a few others used directly by the kernel but not anywhere in these files, but if so, not many. Any undocumented string values which are not in use by the product somewhere are likely to be untested as well, so if you're tempted to complain that this list isn't absolutely complete, be careful what you wish for.

$\endgroup$
0
16
$\begingroup$

These String items were directly read from the 10.0.2 Front End, including quite a few not listed elsewhere in this Q&A:

{"AltKey", "ByteCount", "CellChangeTimesList", "CellCount", "CellStyleName", "CodeContext", "CommandKey", "ConnectedControllers", "ControlKey", "ControllerData", "ControllerState", "ControlsFontFamily", "ControlsFontSize", "CounterValue", "CurrentFormatTime", "CurrentLocatorPaneThumb", "DefaultButtonSize", "DefaultHelpViewerWindowMargins", "DefaultHelpViewerWindowSize", "DefaultWindowSize", "DialogCanClose", "DocumentAndWindowSize", "DocumentSize", "EventAbsoluteTime", "EventData", "EventKey", "FontAscenderHeight", "FontAxisOffset", "FontCapHeight", "FontDescenderDepth", "FontLineHeight", "FontLowercaseAscenderHeight", "FontMWidth", "FontNWidth", "FontThickness", "FontXHeight", "FullScreenArea", "GraphicsSelectionType", "HasHandwritingInput", "HasSystemFullScreenButton", "HasTouchscreen", "HyperlinkModifierKey", "InternetConnectionAvailable", "KeyboardKeys", "LicenseValid", "LocalFileSystemAccessAllowed", "MaxCounterValue", "MenuFontFamily", "MenuFontSize", "ModifierKeys", "MouseButtons", "MouseButtonTest", "MouseClickCount", "MouseOver", "MousePosition", "NetworkConnectionAvailable", "NotebookDirectory", "NotebookEvaluationPending", "NotebookFileName", "NotebookFullFileName", "NotebookSelected", "OptionKey", "PanelBackground", "PanelFontFamily", "PanelFontSize", "PluginEnabled", "PluginParameters", "PreferredHandedness", "PreviousFormatTime", "PrimaryScreenSize", "RightClickData", "RunningEvaluator", "ScreenArea", "ScreenBitDepth", "ScreenInformation", "ScreenResolution", "SelectionData", "SelectionOver", "ShiftKey", "ShutdownSynchronization", "StoredWolframIdCredentials", "StyleDefinitions", "SynchronizationType", "SyntaxColoringReasons", "SystemColor", "TimeUsed", "ToolbarBackground", "TooltipFontFamily", "TooltipFontSize", "TooltipFrameMargins", "TouchPosition", "UserInteractionEnabled", "WindowResolution", "WolframCloudActivityQueueStatus", "WolframCloudConnected", "WolframCloudFullUserName", "WolframCloudLoginError", "WolframCloudSyncState", "WolframCloudUILogin", "WolframCloudUserName", "WolframCloudUserUUID", "WordCount"} 

Using a modified version of Rojo's method, adapted to correctly handle appearances of the CurrentValue[obj, item] form, in Mathematica 10.0.2 these additional items not listed above were found:

{"AlignmentGuidesEnabled", "AllowDataUpdates", "AllowDocumentationUpdates", "AllowDownloads", "AutoQuoteCharacters", "BlinkingCellInsertionPoint", "CaseSensitiveCommandCompletion", "CellChangeTimeMergeInterval", "CodeAssistOptions", "DebuggerSettings", "DefaultNewGraphics", "DialogSettings", "DisplayImagePixels", "Graphics3DBoxOptionsClipPlanes", "Graphics3DBoxOptionsClipPlanesStyle", "Graphics3DBoxOptionsImageSize", "Graphics3DBoxOptionsPlotRange", "GraphicsBoxOptionsImageSize", "GraphicsBoxOptionsImageSizeRaw", "IsPersistent2DTool", "MarkerAspectRatio", "MarkerLineThickness", "NotebookSecurityOptions", "NotebooksMenuHistoryLength", "PasteAutoQuoteCharacters", "PersistentTools", "PreferencesSettings", "Raster3DBoxOptionsPlotRange", "Raster3DBoxOptionsPlotRangeClipPlanesStyle", "RasterExploreViewRange", "SelectedTool", "ShowPredictiveInterface", "TrackCellChangeTimes", "VersionedPreferences", "WolframCloudSettings", AutoMultiplicationSymbol, AutoNumberFormatting, FrontEnd`AutoOpenPaclets, AutoStyleOptions, ButtonBoxOptions, cache, CommonDefaultFormatTypes, ConversionOptions, FrontEnd`Current2DTool, DefaultNewCellStyle, DigitBlock, DigitBlockMinimum, DragAndDrop, Enabled, Evaluatable, Evaluator, EvaluatorNames, FindSettings, Graphics3DBoxOptions, HomePage, Language, Magnification, MessageOptions, NewPrimitiveStyle, NotebookConvertSettings, NotebooksMenu, NumberMultiplier, NumberPoint, NumberSeparator, option, OutputSizeLimit, PageFooterLines, PageFooters, PageHeaderLines, PageHeaders, $CellContext`pos$$, PrintAction, PrintingOptions, PrintingStartingPageNumber, PrintPrecision, PrivateFrontEndOptions, PrivateNotebookOptions, RenderingOptions, FrontEnd`RightClickData, RulerUnits, ScreenStyleEnvironment, ShowCellLabel, ShowCursorTracker, ShowGroupOpenCloseIcon, ShowSyntaxStyles, StyleDefinitions, StyleNameDialogSettings, TaggingRules, Visible, WindowMargins, WindowSize, WindowStatusArea, WindowTitle} 

Further these item specifications were found, grouped by item:

{"AutoStyleOptions", "FormattingErrorTooltips"} {"AutoStyleOptions", "HighlightComments"} {"AutoStyleOptions", "HighlightEmphasizedSyntaxErrors"} {"AutoStyleOptions", "HighlightExcessArguments"} {"AutoStyleOptions", "HighlightFormattingErrors"} {"AutoStyleOptions", "HighlightFunctionLocalVariables"} {"AutoStyleOptions", "HighlightLocalScopeConflicts"} {"AutoStyleOptions", "HighlightLocalVariables"} {"AutoStyleOptions", "HighlightMissingArguments"} {"AutoStyleOptions", "HighlightOrderOfEvaluationConflicts"} {"AutoStyleOptions", "HighlightPatternVariables"} {"AutoStyleOptions", "HighlightStrings"} {"AutoStyleOptions", "HighlightSymbolShadowing"} {"AutoStyleOptions", "HighlightSyntaxErrors"} {"AutoStyleOptions", "HighlightUndefinedSymbols"} {"AutoStyleOptions", "HighlightUnknownOptions"} {"AutoStyleOptions", "HighlightUnwantedAssignments"} {"AutoStyleOptions", "CommentStyle", FontColor} {"AutoStyleOptions", "EmphasizedSyntaxErrorStyle", Background} {"AutoStyleOptions", "EmphasizedSyntaxErrorStyle", FontColor} {"AutoStyleOptions", "EmphasizedSyntaxErrorStyle", FontSize} {"AutoStyleOptions", "ExcessArgumentStyle", FontColor} {"AutoStyleOptions", "FunctionLocalVariableStyle", FontColor} {"AutoStyleOptions", "LocalScopeConflictStyle", FontColor} {"AutoStyleOptions", "LocalVariableStyle", FontColor} {"AutoStyleOptions", "MissingArgumentStyle", FontColor} {"AutoStyleOptions", "OrderOfEvaluationConflictStyle", FontColor} {"AutoStyleOptions", "PatternVariableStyle", FontColor} {"AutoStyleOptions", "PatternVariableStyle", FontSlant} {"AutoStyleOptions", "StringStyle", FontColor} {"AutoStyleOptions", "SymbolShadowingStyle", FontColor} {"AutoStyleOptions", "SyntaxErrorStyle", FontColor} {"AutoStyleOptions", "UndefinedSymbolStyle", FontColor} {"AutoStyleOptions", "UnknownOptionStyle", FontColor} {"AutoStyleOptions", "UnwantedAssignmentStyle", FontColor} {"ButtonBoxOptions", ButtonData} {"ByteCount", $CellContext`selectionOnly$$} {"CellChangeTimesList", $CellContext`selectionOnly$$} {"CellCount", False} {"CellCount", True} {"CodeAssistOptions", "AutoConvertEnable"} {"CodeAssistOptions", "AutoPopupDelay"} {"CodeAssistOptions", "AutoPopupEnable"} {"CodeAssistOptions", "DynamicHighlighting"} {"CodeAssistOptions", "FloatingElementDelay"} {"CodeAssistOptions", "FloatingElementEnable"} {"CodeAssistOptions", "HeadHighlightStyle", Background} {"CodeAssistOptions", "MatchHighlightStyle", Background} {"CommonDefaultFormatTypes", "Input"} {"CommonDefaultFormatTypes", "Output"} {"ControllerData", {"Gamepad", "Joystick", "Multi-AxisController"}} {"ControlsFontSize", Large} {"ControlsFontSize", Medium} {"ControlsFontSize", Small} {"ControlsFontSize", Tiny} {"ConversionOptions", "ExportOptions", "BMP"} {"ConversionOptions", "ExportOptions", "EPS"} {"ConversionOptions", "ExportOptions", "GIF"} {"ConversionOptions", "ExportOptions", "JPEG"} {"ConversionOptions", "ExportOptions", "JPEG2000"} {"ConversionOptions", "ExportOptions", "Package"} {"ConversionOptions", "ExportOptions", "PDF"} {"ConversionOptions", "ExportOptions", "PNM"} {"ConversionOptions", "ExportOptions", "SVG"} {"ConversionOptions", "ExportOptions", "TeX"} {"ConversionOptions", "ExportOptions", "TIFF"} {"ConversionOptions", "ExportOptions", "XHTML"} {"ConversionOptions", "ExportOptions", "XHTMLMathML"} {"ConversionOptions", "ImportOptions", "GIF"} {"ConversionOptions", "ImportOptions", "JPEG"} {"ConversionOptions", "ImportOptions", "Package"} {"ConversionOptions", "ImportOptions", "PDF"} {"ConversionOptions", "ImportOptions", "Text"} {"ConversionOptions", "ImportOptions", "TIFF"} {"ConversionOptions", "ExportOptions", "GIF", "Background"} {"ConversionOptions", "ExportOptions", "GIF", "Transparency"} {"ConversionOptions", "ExportOptions", "JPEG2000", "ImageEncoding"} {"ConversionOptions", "ExportOptions", "TIFF", "ColorSeparation"} {"ConversionOptions", "ExportOptions", "TIFF", "DifferencePredictor"} {"ConversionOptions", "ExportOptions", "XHTML", "ConvertClosed"} {"ConversionOptions", "ExportOptions", "XHTML", "ConvertReverseClosed"} {"ConversionOptions", "ExportOptions", "XHTML", "CSSFile"} {"ConversionOptions", "ExportOptions", "XHTML", "CSSInclude"} {"ConversionOptions", "ExportOptions", "XHTML", "CSSRadio"} {"ConversionOptions", "ExportOptions", "XHTML", "MathOutput"} {"ConversionOptions", "ExportOptions", "XHTMLMathML", "ConvertClosed"} {"ConversionOptions", "ExportOptions", "XHTMLMathML", "ConvertReverseClosed"} {"ConversionOptions", "ExportOptions", "XHTMLMathML", "CSSFile"} {"ConversionOptions", "ExportOptions", "XHTMLMathML", "CSSInclude"} {"ConversionOptions", "ExportOptions", "XHTMLMathML", "CSSRadio"} {"ConversionOptions", "ImportOptions", "PDF", "Editable"} {"ConversionOptions", "ImportOptions", "PDF", "Pages"} {"ConversionOptions", "ImportOptions", "Text", "ReadingType"} {"CounterValue", "SlideShowNavigationBar"} {"DebuggerSettings", "BreakOnAllMessages"} {"DebuggerSettings", "BreakOnAsserts"} {"DebuggerSettings", "BreakpointsGroup"} {"DebuggerSettings", "DebuggerEnabled"} {"DebuggerSettings", "HighlightBreakpoints"} {"DebuggerSettings", "HighlightEvaluatorPosition"} {"DebuggerSettings", "HighlightStackFrames"} {"DebuggerSettings", "MessageBreakpointsGroup"} {"DebuggerSettings", "ShowBreakpoints"} {"DebuggerSettings", "ShowStack"} {"DebuggerSettings", "WatchpointsGroup"} {"DebuggerSettings", "BreakpointStyle", Background} {"DebuggerSettings", "BreakpointStyle", FontColor} {"DebuggerSettings", "EvaluatorPositionHighlightStyle", Background} {"DebuggerSettings", "EvaluatorPositionHighlightStyle", FontColor} {"DebuggerSettings", "StackHighlightStyle", Background} {"DebuggerSettings", "StackHighlightStyle", FontColor} {"DialogSettings", "Install", "Type"} {"DigitBlock", 1} {"DigitBlock", 2} {"DigitBlockMinimum", 1} {"DigitBlockMinimum", 2} {"FindSettings", "FindBoxes"} {"FindSettings", "FindHistory"} {"FindSettings", "IgnoreCase"} {"FindSettings", "ReplaceBoxes"} {"FindSettings", "ReplaceHistory"} {"FindSettings", "WholeWord"} {"FindSettings", "Wraparound"} {"FindSettings", WindowMargins} {"FindSettings", WindowOpacity} {"FindSettings", WindowSize} {"Graphics3DBoxOptions", "RotationAction"} {"Graphics3DBoxOptionsClipPlanes", $CellContext`i$} {"Graphics3DBoxOptionsClipPlanes", $CellContext`j$} {"Graphics3DBoxOptionsClipPlanes", $CellContext`i$, 4} {"Graphics3DBoxOptionsClipPlanes", $CellContext`j$, 4} {"Graphics3DBoxOptionsClipPlanesStyle", $CellContext`i$} {"Graphics3DBoxOptionsClipPlanesStyle", $CellContext`j$} {"MaxCounterValue", "SlideShowNavigationBar"} {"MessageOptions", "CompatibilityToolWarning"} {"MessageOptions", "ConsoleMessageAction"} {"MessageOptions", "ErrorAction"} {"MessageOptions", "KernelMessageAction"} {"MessageOptions", "WarningAction"} {"ModifierKeys", "Command"} {"NewPrimitiveStyle", Arrowheads} {"NewPrimitiveStyle", Background} {"NewPrimitiveStyle", CapForm} {"NewPrimitiveStyle", Dashing} {"NewPrimitiveStyle", DrawEdges} {"NewPrimitiveStyle", DrawFrontFaces} {"NewPrimitiveStyle", EdgeCapForm} {"NewPrimitiveStyle", EdgeColor} {"NewPrimitiveStyle", EdgeDashing} {"NewPrimitiveStyle", EdgeJoinForm} {"NewPrimitiveStyle", EdgeOpacity} {"NewPrimitiveStyle", EdgeThickness} {"NewPrimitiveStyle", FontColor} {"NewPrimitiveStyle", FontFamily} {"NewPrimitiveStyle", FontOpacity} {"NewPrimitiveStyle", FontSize} {"NewPrimitiveStyle", FontSlant} {"NewPrimitiveStyle", FontWeight} {"NewPrimitiveStyle", FrontFaceColor} {"NewPrimitiveStyle", FrontFaceOpacity} {"NewPrimitiveStyle", GraphicsColor} {"NewPrimitiveStyle", JoinForm} {"NewPrimitiveStyle", LineColor} {"NewPrimitiveStyle", LineOpacity} {"NewPrimitiveStyle", Opacity} {"NewPrimitiveStyle", PointSize} {"NewPrimitiveStyle", TextAlignment} {"NewPrimitiveStyle", TextJustification} {"NewPrimitiveStyle", Thickness} {"NewPrimitiveStyle", FontVariations, "Underline"} {"NewPrimitiveStyle", InsetBoxOptions, Alignment} {"NewPrimitiveStyle", RectangleBoxOptions, RoundingRadius} {"NewPrimitiveStyle", InsetBoxOptions, Alignment, 2} {"NotebookConvertSettings", "GenerateBitmapCaches"} {"NotebookConvertSettings", "InputToStandardForm"} {"NotebookConvertSettings", "OutputToStandardForm"} {"NotebookConvertSettings", "PreserveStyleSheet"} {"NotebookSecurityOptions", "TrustByDefault"} {"NotebookSecurityOptions", str} {"PageFooterLines", 1} {"PageFooterLines", 2} {"PageFooterLines", $CellContext`currentPage$$} {"PageFooters", 1, 1} {"PageFooters", 1, 2} {"PageFooters", 1, 3} {"PageFooters", 2, 1} {"PageFooters", 2, 2} {"PageFooters", 2, 3} {"PageFooters", 2, $CellContext`currentPosition$$[2, "Footer"]} {"PageFooters", $CellContext`currentPage$$, $CellContext`currentPosition$$[$CellContext`currentPage$$, "Footer"]} {"PageHeaderLines", 1} {"PageHeaderLines", 2} {"PageHeaderLines", $CellContext`currentPage$$} {"PageHeaders", 1, 1} {"PageHeaders", 1, 2} {"PageHeaders", 1, 3} {"PageHeaders", 2, 1} {"PageHeaders", 2, 2} {"PageHeaders", 2, 3} {"PageHeaders", 2, $CellContext`currentPosition$$[2, "Header"]} {"PageHeaders", $CellContext`currentPage$$, $CellContext`currentPosition$$[$CellContext`currentPage$$, "Header"]} {"PreferencesSettings", "Page"} {"PreferencesSettings", "UseTextFormattingWhenConvertingInput"} {"PreferencesSettings", "UseTextFormattingWhenConvertingOutput"} {"PrintingOptions", "FacingPages"} {"PrintingOptions", "FirstPageFace"} {"PrintingOptions", "FirstPageFooter"} {"PrintingOptions", "FirstPageHeader"} {"PrintingOptions", "OpacityRenderingMethod"} {"PrintingOptions", "RasterizationResolution"} {"PrintingOptions", "VertexColorRenderingMethod"} {"PrivateFrontEndOptions", "LastRegistrationReminderDate"} {"PrivateFrontEndOptions", "LicensesAgreed"} {"PrivateFrontEndOptions", "ShowAtStartup"} {"PrivateFrontEndOptions", "WolframAlphaSettings"} {"PrivateFrontEndOptions", "WolframAlphaSettings", "BaseURL"} {"PrivateFrontEndOptions", "WolframAlphaSettings", "SendMathematicaSessionInfo"} {"PrivateFrontEndOptions", "DialogSettings", "DrawingTools", "ArrowsOpener"} {"PrivateFrontEndOptions", "DialogSettings", "DrawingTools", "FillOpener"} {"PrivateFrontEndOptions", "DialogSettings", "DrawingTools", "OperationsOpener"} {"PrivateFrontEndOptions", "DialogSettings", "DrawingTools", "PointsOpener"} {"PrivateFrontEndOptions", "DialogSettings", "DrawingTools", "RectanglesOpener"} {"PrivateFrontEndOptions", "DialogSettings", "DrawingTools", "SettingsOpener"} {"PrivateFrontEndOptions", "DialogSettings", "DrawingTools", "StrokeOpener"} {"PrivateFrontEndOptions", "DialogSettings", "DrawingTools", "TextOpener"} {"PrivateFrontEndOptions", "DialogSettings", "DrawingTools", "ToolsOpener"} {"PrivateFrontEndOptions", "DialogSettings", "DrawingTools", WindowMargins} {"PrivateFrontEndOptions", "DialogSettings", "HeadersFooters", "DateFormat"} {"PrivateFrontEndOptions", "DialogSettings", "HeadersFooters", "Dialogs"} {"PrivateFrontEndOptions", "DialogSettings", "HeadersFooters", "PageNumberFormat"} {"PrivateFrontEndOptions", "DialogSettings", "InsertCitation", WindowMargins} {"PrivateFrontEndOptions", "DialogSettings", "InsertCitation", WindowSize} {"PrivateFrontEndOptions", "DialogSettings", "InsertCitationNote", WindowMargins} {"PrivateFrontEndOptions", "DialogSettings", "InsertCitationNote", WindowSize} {"PrivateFrontEndOptions", "DialogSettings", "Install", "Source"} {"PrivateFrontEndOptions", "DialogSettings", "Install", "Type"} {"PrivateFrontEndOptions", "InterfaceSettings", "ImageEditingToolbar", "QueryHistory"} {"PrivateFrontEndOptions", "DialogSettings", "Preferences", "SubTabs", "Appearance"} {"PrivateFrontEndOptions", "DialogSettings", "Preferences", "SubTabs", "SyntaxColoring"} {"PrivateNotebookOptions", "FinalWindowPrompt"} {"PrivateNotebookOptions", "JournalStyle"} {"PrivateNotebookOptions", "NoteStyle"} {"PrivateNotebookOptions", "SafeFileOpen"} {"PrivateNotebookOptions", "VersionedStylesheet"} {"Raster3DBoxOptionsPlotRange", $CellContext`i$} {"Raster3DBoxOptionsPlotRange", $CellContext`i$, 1} {"Raster3DBoxOptionsPlotRange", $CellContext`i$, 2} {"RenderingOptions", "HardwareAntialiasingQuality"} {"SystemColor", "DialogText"} {"SystemColor", "DialogTextDisabled"} {"SystemColor", "Menu"} {"SystemColor", "MenuText"} {"SystemColor", "Tooltip"} {"SystemColor", "TooltipFrame"} {"SystemColor", "TooltipText"} {"TaggingRules", "ActivationState"} {"TaggingRules", "ColorType"} {"TaggingRules", "DefaultWindowSize"} {"TaggingRules", "DisableController"} {"TaggingRules", "ErrorMessage"} {"TaggingRules", "ExampleCounter"} {"TaggingRules", "FoundExpression"} {"TaggingRules", "Highlight"} {"TaggingRules", "Image3DEditor"} {"TaggingRules", "ImageEditor"} {"TaggingRules", "index"} {"TaggingRules", "InputNotebook"} {"TaggingRules", "length"} {"TaggingRules", "NotebookID"} {"TaggingRules", ScrollPosition} {"TaggingRules", WindowSize} {"TaggingRules", "SlideshowSettings", "Toolbar"} {"TaggingRules", "SlideshowSettings", "WindowElements"} {"WindowSize", 1} {"WindowSize", 2} {"WolframCloudSettings", "ActivityMonitorWindowMargins"} {"WolframCloudSettings", "ActivityMonitorWindowSize"} {"WolframCloudSettings", "OpenDialogWindowMargins"} {"WolframCloudSettings", "OpenDialogWindowSize"} {"WolframCloudSettings", "SaveDialogWindowMargins"} {"WolframCloudSettings", "SaveDialogWindowSize"} 
$\endgroup$
4
  • 1
    $\begingroup$ Thanks! It might be useful if you could add how you arrived at this list. $\endgroup$ Commented Jan 9, 2015 at 13:08
  • 5
    $\begingroup$ @Sjoerd A bit of light reading in my spare time; I opened Mathematica.exe in Notepad. =D $\endgroup$ Commented Jan 9, 2015 at 14:01
  • $\begingroup$ @SjoerdC.deVries aren't you reading .exe files in your spare time? :) $\endgroup$ Commented Jan 14, 2015 at 7:56
  • $\begingroup$ @Mr.Wizard On Linux and, likely likely, MacOs there is a string(1) utility that prints any sequence of printable characters of a given size or longer. For Windows, there is a download of Sysinternal's counterpart of the utility from Microsoft. $\endgroup$ Commented May 31, 2022 at 19:28
15
$\begingroup$

Perhaps: using

 systemnames = Names["System`*"]; Select[systemnames, CurrentValue[#] =!= $Failed &]; CurrentValue /@ % // Short (* ==> {False, {FrontEnd`FileName[{$UserBaseDirectory, "Autoload"}], ... } *) 

for the System` context, and replacing System with the appropriate context name for other members of the list Contexts[]?

$\endgroup$
6
  • 1
    $\begingroup$ +1 for the idea: asking the system is so much better than trusting the documentation :-). Unfortunately this will not find things that are only available as strings as the OPs example. My answer is even worse in that respect... $\endgroup$ Commented Feb 5, 2012 at 23:34
  • $\begingroup$ Also very nice, but Cases[Names["System`*"],"TooltipFontFamily"] yields {}. $\endgroup$ Commented Feb 5, 2012 at 23:40
  • $\begingroup$ @kguler I liked the example you removed in your latest edit. If you'd ask me I would have kept it. $\endgroup$ Commented Feb 6, 2012 at 11:44
  • $\begingroup$ @Sjoerd, I was not quite sure if the example that I erased was correct; I wanted to make sure that it was not a fluke due to corruption in my ContextPath after trying to do too many things in a single session. I will check and update if can verify that it was correct. Meanwhile, I hope there will be a response from WR to Mike's logged question soon. $\endgroup$ Commented Feb 6, 2012 at 12:04
  • $\begingroup$ I didn't have mma available when I read your previous edit, but now that I have I don't see "TooltipFontFamily" in the Global` context; Context["TooltipFontFamily"] doesn't work as you showed. Come to think of it, can strings live in a context? $\endgroup$ Commented Feb 6, 2012 at 18:07
11
$\begingroup$

To my understanding CurrentValue adds an alternative syntax to what Options and SetOptions provide for the frontend and notebooks. So in addition to what's documented I think Options[$FrontEnd] and Options[Notebook] would be a good starting point. These are what I usually consult when searching for something.

$\endgroup$
2
  • $\begingroup$ That certainly yields a lot of options but the example I gave ("TooltipFontFamily") is not among them. That suggests there must be more options to be found than only those. In those list most of the options are not strings BTW, whereas most of the values listed in the CurrentValue doc page are strings. $\endgroup$ Commented Feb 5, 2012 at 23:36
  • 2
    $\begingroup$ @SjoerdC.deVries: you are absolutely right about the fact that my list is not complete, and I know that very well. You should keep in mind that many options can nowadays be given as strings or as a symbol, try e.g. CurrentValue[AutoIndent] vs. CurrentValue["AutoIndent"]. Something that is also not clear to me is why there is a TooltipBoxOptions -> {"DefaultLabelStyle" -> "TooltipLabel"} and CurrentValue["TooltipFontFamily"] and if and how they are connected. Looks like a rich field for experiments... $\endgroup$ Commented Feb 5, 2012 at 23:47
10
$\begingroup$

Basing on Sjoerds self answer, you were missing the subdirectories. I added that and the tr files (don't know if it was worth something). Probably I'm missing some others because this doesn't check box structures, but it does get a few extras

fnames = FileNames[ "*.nb" | "*.tr", {FileNameJoin[{$InstallationDirectory, "SystemFiles", "FrontEnd", "StyleSheets"}], FileNameJoin[{$InstallationDirectory, "SystemFiles", "FrontEnd", "TextResources"}], FileNameJoin[{$InstallationDirectory, "SystemFiles", "FrontEnd", "SystemResources"}]}, Infinity]; fimps = Import[#, "Text"] & /@ fnames; DeleteDuplicates@ Flatten@StringCases[fimps, Shortest[ "CurrentValue[" ~~ (i___ /; SameQ @@ (StringCount[i, #] & /@ {"[", "]"})) ~~ "]"]] // StringReplace[#, Whitespace -> ""] & // MakeExpression[#, StandardForm][[1, 1]] & /@ # & // DeleteDuplicates//Sort 

You get

{ {"CellCount"}, {"CommandKey"}, {"ControlKey"}, {"ControlsFontFamily"}, {"ControlsFontSize"}, {"CurrentFormatTime"}, {"DefaultButtonSize"}, {"DefaultNewGraphics"}, {"GraphicsBoxOptionsImageSizeRaw"}, {"HyperlinkModifierKey"}, {"LicenseValid"}, {"Magnification"}, {"MenuFontFamily"}, {"MouseButtonTest"}, {"MouseClickCount"}, {"MouseOver"}, {"MousePosition"}, {"NotebookFileName"}, {"NotebookSelected"}, {"OptionKey"}, {"PanelBackground"}, {"PanelFontFamily"}, {"PanelFontSize"}, {"PluginEnabled"}, {"PreviousFormatTime"}, {"ScreenArea"}, {"SelectionData"}, {"SelectionOver"}, {"ShiftKey"}, {"ToolbarBackground"}, {"TooltipFontFamily"}, {"TooltipFontSize"}, {"TooltipFrameMargins"}, {"WindowSize"}, {dialog}, {Enabled}, {HomePage}, {Inherited}, {$CellContext`inputnb$$}, {Language}, {Magnification}, {nb}, {$CellContext`nb$}, {$CellContext`nb$$}, {FrontEnd`SelectionObject}, {target}, {WindowFrame}, {WindowSize}, {WindowTitle}, {FrontEnd`$ActivationDialog}, {$Failed}, {FrontEnd`$FrontEnd}, {FrontEnd`ButtonNotebook[]}, {FrontEnd`EvaluationNotebook[]}, {FrontEndObject[ LinkObject["2t2_shm", 1, 1]]}, {FrontEnd`InputNotebook[]}, {{"ControllerData", {"Gamepad", "Joystick", "Multi-AxisController"}}}, {{"ControlsFontSize", Large}}, {{"ControlsFontSize", Medium}}, {{"ControlsFontSize", Small}}, {{"ControlsFontSize", Tiny}}, {{"ControlsFontSize", #5}}, {{"CounterValue", "SlideShowNavigationBar"}}, {{"MaxCounterValue", "SlideShowNavigationBar"}}, {{"ModifierKeys", "Command"}}, {{"SystemColor", "DialogText"}}, {{"SystemColor", "DialogTextDisabled"}}, {{"SystemColor", "MenuText"}}, {{"SystemColor", "Tooltip"}}, {{"SystemColor", "TooltipFrame"}}, {{"SystemColor", "TooltipText"}}, {{ButtonBoxOptions, ButtonData}}, {{TaggingRules, "Highlight"}}, {{WindowSize, 1}}, {{WindowSize, 2}}, {{"ScreenRectangle", 1, 2}}, {{"ScreenRectangle", 2, 2}}, {{ConversionOptions, "ImportOptions", "PDF", "Editable"}}, {{ConversionOptions, "ImportOptions", "PDF", "Pages"}}, {NotebookObject[ FrontEndObject[ LinkObject["2t2_shm", 1, 1]], 193]}, {target_}, {#1} } 
$\endgroup$
8
$\begingroup$

In addition to the other very useful answers, I'd like to start a collection of links to posts mentioning interesting CurrentValue items:

$\endgroup$
7
$\begingroup$

The secrets can be revealed by examining strings in the executable file:

$ cd /usr/local/Wolfram/Mathematica/11.0 $ cd SystemFiles/FrontEnd/Binaries/Linux-x86-64 $ strings Mathematica | grep 'CurrentValue' 

Output:

FrontEnd`AbsoluteCurrentValue FrontEnd`CurrentValue FrontEnd`Private`SetCurrentValue FrontEnd`CurrentValue`AltKey FrontEnd`CurrentValue`CurrentLocatorPaneThumb FrontEnd`CurrentValue`EventAbsoluteTime FrontEnd`CurrentValue`EventData FrontEnd`CurrentValue`ModifierKeys FrontEnd`CurrentValue`ShiftKey FrontEnd`CurrentValue`ControlKey FrontEnd`CurrentValue`CommandKey FrontEnd`CurrentValue`OptionKey FrontEnd`CurrentValue`HyperlinkModifierKey FrontEnd`CurrentValue`MousePosition FrontEnd`CurrentValue`TouchPosition FrontEnd`CurrentValue`MouseButtons FrontEnd`CurrentValue`MouseButtonTest FrontEnd`CurrentValue`MouseClickCount FrontEnd`CurrentValue`EventKey FrontEnd`CurrentValue`MouseOver FrontEnd`CurrentValue`KeyboardKeys FrontEnd`CurrentValue`RightClickData FrontEnd`CurrentValue`SelectionData FrontEnd`CurrentValue`GraphicsSelectionType FrontEnd`CurrentValue`SelectionOver FrontEnd`CurrentValue`NotebookFileName FrontEnd`CurrentValue`NotebookFullFileName FrontEnd`CurrentValue`NotebookDirectory FrontEnd`CurrentValue`NotebookSelected FrontEnd`CurrentValue`RunningEvaluator FrontEnd`CurrentValue`NotebookModified FrontEnd`CurrentValue`FontThickness FrontEnd`CurrentValue`FontMWidth FrontEnd`CurrentValue`FontNWidth FrontEnd`CurrentValue`FontXHeight FrontEnd`CurrentValue`FontAxisOffset FrontEnd`CurrentValue`FontLineHeight FrontEnd`CurrentValue`FontCapHeight FrontEnd`CurrentValue`FontAscenderHeight FrontEnd`CurrentValue`FontLowercaseAscenderHeight FrontEnd`CurrentValue`FontDescenderDepth FrontEnd`CurrentValue`CellStyleName FrontEnd`CurrentValue`DocumentSize FrontEnd`CurrentValue`DocumentAndWindowSize FrontEnd`CurrentValue`ControlsFontFamily FrontEnd`CurrentValue`ControlsFontSize FrontEnd`CurrentValue`PanelFontFamily FrontEnd`CurrentValue`PanelFontSize FrontEnd`CurrentValue`PanelBackground FrontEnd`CurrentValue`ToolbarBackground FrontEnd`CurrentValue`TooltipFontFamily FrontEnd`CurrentValue`TooltipFontSize FrontEnd`CurrentValue`TooltipFrameMargins FrontEnd`CurrentValue`MenuFontFamily FrontEnd`CurrentValue`MenuFontSize FrontEnd`CurrentValue`SystemColor FrontEnd`CurrentValue`PrimaryScreenSize FrontEnd`CurrentValue`DefaultWindowSize FrontEnd`CurrentValue`DefaultHelpViewerWindowSize FrontEnd`CurrentValue`DefaultHelpViewerWindowMargins FrontEnd`CurrentValue`HasSystemFullScreenButton FrontEnd`CurrentValue`CellCount FrontEnd`CurrentValue`WordCount FrontEnd`CurrentValue`ByteCount FrontEnd`CurrentValue`CellChangeTimesList FrontEnd`CurrentValue`SyntaxColoringReasons FrontEnd`CurrentValue`CodeContext FrontEnd`CurrentValue`TimeUsed FrontEnd`CurrentValue`CounterValue FrontEnd`CurrentValue`MaxCounterValue FrontEnd`CurrentValue`StyleDefinitions FrontEnd`CurrentValue`DefaultButtonSize FrontEnd`CurrentValue`ConnectedControllers FrontEnd`CurrentValue`ControllerState FrontEnd`CurrentValue`ControllerData FrontEnd`CurrentValue`CurrentFormatTime FrontEnd`CurrentValue`PreviousFormatTime FrontEnd`CurrentValue`PreferredHandedness FrontEnd`CurrentValue`HasTouchscreen FrontEnd`CurrentValue`HasHandwritingInput FrontEnd`CurrentValue`NotebookEvaluationPending FrontEnd`CurrentValue`UserInteractionEnabled FrontEnd`CurrentValue`PluginEnabled FrontEnd`CurrentValue`PluginParameters FrontEnd`CurrentValue`ScreenInformation FrontEnd`CurrentValue`ScreenArea FrontEnd`CurrentValue`FullScreenArea FrontEnd`CurrentValue`ScreenBitDepth FrontEnd`CurrentValue`ScreenResolution FrontEnd`CurrentValue`WindowResolution FrontEnd`CurrentValue`NetworkConnectionAvailable FrontEnd`CurrentValue`InternetConnectionAvailable FrontEnd`CurrentValue`ShutdownSynchronization FrontEnd`CurrentValue`SynchronizationType FrontEnd`CurrentValue`WolframCloudSyncState FrontEnd`CurrentValue`WolframCloudActivityQueueStatus FrontEnd`CurrentValue`WolframCloudUILogin FrontEnd`CurrentValue`StoredWolframIdCredentials FrontEnd`CurrentValue`WolframCloudConnected FrontEnd`CurrentValue`WolframCloudUserName FrontEnd`CurrentValue`WolframCloudFullUserName FrontEnd`CurrentValue`WolframCloudUserUUID FrontEnd`CurrentValue`WolframCloudLoginError FrontEnd`CurrentValue`PendingWolframCloudTasks FrontEnd`CurrentValue`DialogCanClose FrontEnd`CurrentValue`LocalFileSystemAccessAllowed FrontEnd`CurrentValue`LicenseValid FrontEnd`CurrentValue`ImageSizeMultiplier 
$\endgroup$
5
  • $\begingroup$ What are the chances of this working on a non-Linux OS? $\endgroup$ Commented Aug 24, 2016 at 5:28
  • $\begingroup$ @m_goldberg for OS X, it is cd /Applications/Mathematica.app/Contents/MacOS and strings Mathematica | grep 'CurrentValue' $\endgroup$ Commented Aug 24, 2016 at 13:47
  • $\begingroup$ @JacobAkkerboom. Doesn't work for me. man strings returns No manual entry for strings. The strings command line utility doesn't seem to be installed on my system (OS X 10.10.2). $\endgroup$ Commented Aug 25, 2016 at 0:35
  • $\begingroup$ @m_goldberg Ah then it must be new in 10.11 (which strings gives /usr/bin/strings for me, showing that it is in a system directory, so it's not something I downloaded myself. man strings also works here. $\endgroup$ Commented Aug 25, 2016 at 7:58
  • $\begingroup$ And strings for Windows download is here: docs.microsoft.com/en-us/sysinternals/downloads/strings $\endgroup$ Commented Jul 4, 2018 at 2:49
7
$\begingroup$

Another way to get more stuff is to just see what's available to FrontEnd`Value[FrontEnd`CurrentValue[__]] as that's how CurrentValue seems to work its magic (per the DownValues). Then we'll use the vast output from FrontEndExecute[FrontEnd`NeedCurrentFrontEndSymbolsPacket[]] and see what sticks:

Select[ Flatten@ FrontEndExecute[FrontEnd`NeedCurrentFrontEndSymbolsPacket[]][[1]], Not@ MatchQ[ FrontEndExecute@ FrontEnd`Value[FrontEnd`CurrentValue[#], False], _FrontEnd`CurrentValue ] & ] 

And we get this:

{ "Active","AddOnHelpPath","AllowDataUpdates", "AllowDebugging","AllowDocumentationUpdates","AllowDownloads", "AllowExternalChannelFunctions","AllowGroupClose","AllowInlineCells", "AllowReverseGroupClose","AnimationCycleOffset","AnimationCycleRepetitions", "AnimationDisplayTime","AnimationRunning","Antialiasing", "AspectRatioFixed","AutoGeneratedPackage","AutoIndent", "AutoItalicWords","AutoloadPath","AutomaticWolframCloudLogin", "AutoMultiplicationSymbol","AutoNumberFormatting","AutoOpenNotebooks", "AutoOpenPaclets","AutoOpenPalettes","AutoQuoteCharacters", "AutoSpacing","AutoStyleWords","Background", "BackgroundAppearance","BackgroundAppearanceOptions","BlinkingCellInsertionPoint", "BoxFormattingRecursionLimit","BoxFormFormatTypes","CacheGraphics", "CaseSensitiveCommandCompletion","CellAutoOverwrite","CellBaseline", "CellChangeTimeMergeInterval","CellChangeTimes","CellContext", "CellDingbat","CellDynamicExpression","CellEditDuplicate", "CellEditDuplicateMakesCopy","CellEpilog","CellEvaluationDuplicate", "CellEvaluationFunction","CellEventActions","CellFrame", "CellFrameColor","CellFrameLabelMargins","CellFrameLabels", "CellFrameMargins","CellFrameStyle","CellGrouping", "CellGroupingRules","CellHorizontalScrolling","CellInsertionPointCell", "CellInsertionPointColor","CellLabel","CellLabelAutoDelete", "CellLabelMargins","CellLabelPositioning","CellLabelStyle", "CellMargins","CellOpen","CellProlog", "CellSize","CellSplitCopiesTags","CellTags", "CharacterEncodingsPath","ClearEvaluationQueueOnKernelQuit","Clickable", "ClipPlanes","ClipPlanesStyle","CloseOnClickOutside", "ClosingAutoSave","ClosingSaveDialog","ComponentwiseContextMenu", "ConfigurationPath","ContextMenu","ControlsRendering", "ConversionRules","ConvertersPath","Copyable", "CounterAssignments","CounterIncrements","CounterStyleMenuListing", "CreateCellID","DataCompression","Default2DTool", "Default3DTool","DefaultAttachedCellStyle","DefaultControlPlacement", "DefaultDockedCellStyle","DefaultDuplicateCellStyle","DefaultFontProperties", "DefaultFormatType","DefaultInlineFormatType","DefaultNaturalLanguage", "DefaultNewCellStyle","DefaultNewGraphics","DefaultNewGraphics3D", "DefaultNewInlineCellStyle","DefaultNewInlineGraphics","DefaultNewInlineGraphics3D", "DefaultNotebook","DefaultPackageStyleDefinitions","DefaultReturnCreatedCellStyle", "DefaultScriptStyleDefinitions","DefaultStyleDefinitions","Deletable", "DelimiterFlashTime","DelimiterMatching","Deployed", "Dictionaries","DigitBlock","DigitBlockMinimum", "DockedCells","DragAndDrop","DynamicEvaluationTimeout", "DynamicUpdating","Editable","EmphasizeSyntaxErrors", "Enabled","Evaluatable","EvaluationCompletionAction", "EvaluationMode","EvaluationQueueActions","Evaluator", "EvaluatorNames","EvaluatorStartup","ExportAutoReplacements", "ExternalDataCharacterEncoding","FileChangeProtection","FillForm", "FontColor","FontFamily","FontOpacity", "FontSize","FontSlant","FontSubstitutions", "FontTracking","FontWeight","FormatType", "FormatTypeAutoConvert","FrontEndDynamicExpression","FrontEndEventActions", "FrontEndStackSize","GeneratedCell","GenerateImageCachesOnPlacement", "GeometricTransformation3DBoxOptions","GeometricTransformationBoxOptions","GlobalInitializationCellWarning", "GreekStyle","GroupOpenerColor","GroupOpenerInsideFrame", "GroupPageBreakWithin","HomePage","Hyphenation", "IgnoreSpellCheck","ImageMargins","ImageRegion", "ImageSize","ImageSizeMultipliers","ImportAutoReplacements", "IncludeFileExtension","InitializationCell","InitializationCellEvaluation", "InitializationCellWarning","InitializationGroup","InputAliases", "InputAutoReplacements","Language","LanguageCategory", "LegacyGraphicsCompatibility","Lighting","LimitsPositioningTokens", "LinebreakAdjustments","LinebreakSemicolonWeighting","LineBreakWithin", "LineIndent","LineIndentMaxFraction","LineSpacing", "LowerCaseStyle","Magnification","MaintainDynamicCaches", "MarkerAspectRatio","MarkerLineThickness","MenuCommandKey", "MenuSortingValue","MessageOptions","MousePointerAppearance", "MultilaunchWarning","MultiLetterItalics","MultiLetterStyle", "NotebookAutoSave","NotebookBrowseDirectory","NotebookDynamicExpression", "NotebookEvaluateRecursionLimit","NotebookEventActions","NotebookPath", "NotebooksMenu","NotebooksMenuHistoryLength","NumberMarks", "NumberMultiplier","NumberPoint","NumberSeparator", "OutputAutoOverwrite","OutputSizeLimit","PageBreakAbove", "PageBreakBelow","PageBreakWithin","PageFooterLines", "PageFooters","PageHeaderLines","PageHeaders", "PageWidth","PalettePath","PalettesMenuSettings", "ParagraphIndent","ParagraphSpacing","PasteAutoQuoteCharacters", "PasteBoxFormInlineCells","Placeholder","PreferencesPath", "PreserveOldOutputGraphicsAttributes","PrintAction","PrintingCopies", "PrintingPageRange","PrintingStartingPageNumber","PrintingStyleEnvironment", "PrintPrecision","PrivateEvaluationOptions","RasterExploreViewRange", "ReferenceSystemApplication","ReturnCreatesNewCell","RulerUnits", "Saveable","ScreenInformation","ScreenRectangle", "ScreenStyleEnvironment","ScriptBaselineShifts","ScriptLevel", "ScriptMinSize","ScriptSizeMultipliers","ScrollPosition", "Selectable","ShowAutoConvert","ShowAutoSpellCheck", "ShowAutoStyles","ShowCellBracket","ShowCellLabel", "ShowCellTags","ShowClosedCellArea","ShowCodeAssist", "ShowContents","ShowCursorTracker","ShowDiscretionaryLineSeparators", "ShowGroupOpener","ShowInvisibleCharacters","ShowMissingStyles", "ShowPageBreaks","ShowPredictiveInterface","ShowSelection", "ShowShortBoxForm","ShowSpecialCharacters","ShowStringCharacters", "ShowSyntaxStyles","SingleLetterItalics","SingleLetterStyle", "SpanAdjustments","SpanCharacterRounding","SpanLineThickness", "SpanMaxSize","SpanMinSize","SpanSymmetric", "SpeechNavigation","SpeedOfTime","SpellingDictionariesPath", "StripOnInput","StripStyleOnPaste","StructuredSelection", "StyleBoxAutoDelete","StyleBoxOptions","StyleEnvironment", "StyleHints","StyleKeyMapping","StyleMenuListing", "StyleSheetPath","SystemConsoleApplication","SystemHelpPath", "TabFilling","TabSpacings","TaggingRules", "TemporaryControlActiveInterval","TextAlignment","TextClipboardType", "TextJustification","TrackCellChangeTimes","TraditionalFunctionNotation", "TransitionDirection","TransitionDuration","TransitionEffect", "VariableChangesAreEdits","VersionedOptions","VersionedPreferences", "VirtualGroupData","Visible","WebNotebooksDirectory", "WholeCellGroupOpener","WindowClickSelect","WindowElements", "WindowFloating","WindowFrame","WindowFrameElements", "WindowMargins","WindowMovable","WindowOpacity", "WindowPersistentStyles","WindowSize","WindowStatusArea", "WindowTitle","WindowToolbars","WolframCloudBaseUrl", "WolframId","ZeroWidthTimes" } 

Most of these are just boring options, but some of them aren't, or at least aren't options I've ever seen, like "VariableChangesAreEdits".

$\endgroup$
6
$\begingroup$

Since many people seem to be looking through files in text editors I thought I'd give a way to scrape this data automatically (it should work for any kind of expression you want, as long as it's in a .m or .nb file):

I've used this for a bunch of stuff now. First, a function to get all files of a certain spec in the installation directory:

InternalFiles[namePattern_, directoryExtensions___,depth:_Integer|\[Infinity]:\[Infinity]]:= FileNames[namePattern, FileNameJoin@{ $InstallationDirectory, directoryExtensions }, depth]; 

Then scrape expressions from this:

expressionsSearch[files_, pat_] := Table[ f -> Quiet@ Cases[ Switch[FileExtension@f, "m" | "wl", Import[f, "HeldExpressions"], _, Import[f] ], pat, \[Infinity] ], {f, Replace[files, Except@_List :> InternalFiles[files] ]} ] // DeleteDuplicates; 

I used this on CurrentValue as such:

curValsExprs = expressionsSearch["*.m" | "*.nb", c : (_CurrentValue) :> Hold[c]]; 

Which gave me a massive list of returns, which I normalized some.

Here's the list of single argument CurrentValue calls:

Hold[CurrentValue["AllowDownloads"]], Hold[CurrentValue["AltKey"]], Hold[CurrentValue["CommandKey"]], Hold[CurrentValue["ControlKey"]], Hold[CurrentValue["ControlsFontFamily"]], Hold[CurrentValue["ControlsFontSize"]], Hold[CurrentValue["CurrentFormatTime"]], Hold[CurrentValue["CurrentLocatorPaneThumb"]], Hold[CurrentValue["DefaultButtonSize"]], Hold[CurrentValue["DefaultNewGraphics"]], Hold[CurrentValue["DynamicEvaluation"]], Hold[CurrentValue["Evaluator"]], Hold[CurrentValue["FontCapHeight"]], Hold[CurrentValue["FontMWidth"]], Hold[CurrentValue["HyperlinkModifierKey"]], Hold[CurrentValue["InternetConnectionAvailable"]], Hold[CurrentValue["LicenseValid"]], Hold[CurrentValue["LocalFileSystemAccessAllowed"]], Hold[CurrentValue["Magnification"]], Hold[CurrentValue["MenuFontFamily"]], Hold[CurrentValue["MenuFontSize"]], Hold[CurrentValue["ModifierKeys"]], Hold[CurrentValue["MouseButtons"]], Hold[CurrentValue["MouseButtonTest"]], Hold[CurrentValue["MouseClickCount"]], Hold[CurrentValue["MouseOver"]], Hold[CurrentValue["NotebookSelected"]], Hold[CurrentValue["OptionKey"]], Hold[CurrentValue["PanelBackground"]], Hold[CurrentValue["PanelFontFamily"]], Hold[CurrentValue["PanelFontSize"]], Hold[CurrentValue["PluginEnabled"]], Hold[CurrentValue["PreviousFormatTime"]], Hold[CurrentValue["RunningEvaluator"]], Hold[CurrentValue["SelectionData"]], Hold[CurrentValue["SelectionOver"]], Hold[CurrentValue["ShiftKey"]], Hold[CurrentValue["SynchronizationType"]], Hold[CurrentValue["SynchronousEvaluation"]], Hold[CurrentValue["ToolbarBackground"]], Hold[CurrentValue["TooltipFontFamily"]], Hold[CurrentValue["TooltipFontSize"]], Hold[CurrentValue["TooltipFrameMargins"]], Hold[CurrentValue["UserInteractionEnabled"]], Hold[CurrentValue["WindowSize"]], Hold[CurrentValue["WolframCloudActivityQueueStatus"]], Hold[CurrentValue["WolframCloudConnected"]], Hold[CurrentValue["WolframCloudLoginError"]], Hold[CurrentValue["WolframCloudUILogin"]], Hold[CurrentValue[Enabled]], Hold[CurrentValue[Evaluatable]], Hold[CurrentValue[FontColor]], Hold[CurrentValue[Language]] 

Here are the ones that come as a list of arguments:

Hold[CurrentValue[{"ControllerData",{"Gamepad","Joystick","Multi-Axis Controller"}}]], Hold[CurrentValue[{"ControlsFontSize",Large}]], Hold[CurrentValue[{"ControlsFontSize",Medium}]], Hold[CurrentValue[{"ControlsFontSize",Small}]], Hold[CurrentValue[{"SystemColor","DialogText"}]], Hold[CurrentValue[{"SystemColor","DialogTextDisabled"}]], Hold[CurrentValue[{"SystemColor","Menu"}]], Hold[CurrentValue[{"SystemColor","MenuText"}]], Hold[CurrentValue[{"SystemColor","Tooltip"}]], Hold[CurrentValue[{"SystemColor","TooltipFrame"}]], Hold[CurrentValue[{"SystemColor","TooltipText"}]], Hold[CurrentValue[{GraphicsBoxOptions,AxesStyle}]], Hold[CurrentValue[{GraphicsBoxOptions,LabelStyle}]], Hold[CurrentValue[{GraphicsBoxOptions,TicksStyle}]], Hold[CurrentValue[{StyleDefinitions,"EntityFrame"}]], Hold[CurrentValue[{StyleDefinitions,"EntityFrameless"}]], Hold[CurrentValue[{StyleDefinitions,"GeneralizedEntityToggleLabeled"}]], Hold[CurrentValue[{StyleHints,"CodeFont"}]], Hold[CurrentValue[{TaggingRules,"ModificationHighlight"}]], Hold[CurrentValue[{"MousePosition","Graphics",{0,0}}]], Hold[CurrentValue[{ScreenRectangle,1,2}]], Hold[CurrentValue[{ScreenRectangle,2,2}]], Hold[CurrentValue[{TaggingRules,"values","subvalues"}]] 

Here are those that occur with an object (I put in FEObject which stands for $FrontEnd, $FrontEndSession, NotebookObject, CellObject, or `BoxObject) plus a single argument that isn't found in the single argument list:

Hold[CurrentValue[FEObject,"3DPrintPreviewerApplication"]], Hold[CurrentValue[FEObject,"AddOnHelpPath"]], Hold[CurrentValue[FEObject,"AlignmentGuidesEnabled"]], Hold[CurrentValue[FEObject,"AllowDataUpdates"]], Hold[CurrentValue[FEObject,"AllowDocumentationUpdates"]], Hold[CurrentValue[FEObject,"AllowExternalChannelFunctions"]], Hold[CurrentValue[FEObject,"AutoQuoteCharacters"]], Hold[CurrentValue[FEObject,"CaseSensitiveCommandCompletion"]], Hold[CurrentValue[FEObject,"CellChangeTimeMergeInterval"]], Hold[CurrentValue[FEObject,"CodeContext"]], Hold[CurrentValue[FEObject,"Current2DTool"]], Hold[CurrentValue[FEObject,"DialogCanClose"]], Hold[CurrentValue[FEObject,"DisplayImagePixels"]], Hold[CurrentValue[FEObject,"FontSize"]], Hold[CurrentValue[FEObject,"Graphics3DBoxOptionsClipPlanes"]], Hold[CurrentValue[FEObject,"Graphics3DBoxOptionsClipPlanesStyle"]], Hold[CurrentValue[FEObject,"Graphics3DBoxOptionsImageSize"]], Hold[CurrentValue[FEObject,"Graphics3DBoxOptionsPlotRange"]], Hold[CurrentValue[FEObject,"GraphicsBoxOptionsImageSize"]], Hold[CurrentValue[FEObject,"IsPersistent2DTool"]], Hold[CurrentValue[FEObject,"Language"]], Hold[CurrentValue[FEObject,"MarkerAspectRatio"]], Hold[CurrentValue[FEObject,"MarkerLineThickness"]], Hold[CurrentValue[FEObject,"NotebooksMenuHistoryLength"]], Hold[CurrentValue[FEObject,"PasteAutoQuoteCharacters"]], Hold[CurrentValue[FEObject,"PersistentTools"]], Hold[CurrentValue[FEObject,"Raster3DBoxOptionsPlotRange"]], Hold[CurrentValue[FEObject,"Raster3DBoxOptionsPlotRangeClipPlanesStyle"]], Hold[CurrentValue[FEObject,"RasterExploreViewRange"]], Hold[CurrentValue[FEObject,"SelectedTool"]], Hold[CurrentValue[FEObject,"ShowAutoSpellCheck"]], Hold[CurrentValue[FEObject,"ShowPredictiveInterface"]], Hold[CurrentValue[FEObject,"SyntaxColoringReasons"]], Hold[CurrentValue[FEObject,"TrackCellChangeTimes"]], Hold[CurrentValue[FEObject,"VersionedPreferences"]], Hold[CurrentValue[FEObject,AutoMultiplicationSymbol]], Hold[CurrentValue[FEObject,AutoNumberFormatting]], Hold[CurrentValue[FEObject,Background]], Hold[CurrentValue[FEObject,CellID]], Hold[CurrentValue[FEObject,CellTags]], Hold[CurrentValue[FEObject,DefaultNewCellStyle]], Hold[CurrentValue[FEObject,Deployed]], Hold[CurrentValue[FEObject,DockedCells]], Hold[CurrentValue[FEObject,DynamicUpdating]], Hold[CurrentValue[FEObject,Magnification]], Hold[CurrentValue[FEObject,NotebooksMenu]], Hold[CurrentValue[FEObject,NumberMultiplier]], Hold[CurrentValue[FEObject,NumberPoint]], Hold[CurrentValue[FEObject,NumberSeparator]], Hold[CurrentValue[FEObject,OutputSizeLimit]], Hold[CurrentValue[FEObject,PrintAction]], Hold[CurrentValue[FEObject,PrintingStartingPageNumber]], Hold[CurrentValue[FEObject,PrintPrecision]], Hold[CurrentValue[FEObject,resType]], Hold[CurrentValue[FEObject,RulerUnits]], Hold[CurrentValue[FEObject,ScreenStyleEnvironment]], Hold[CurrentValue[FEObject,ShowCellLabel]], Hold[CurrentValue[FEObject,ShowGroupOpenCloseIcon]], Hold[CurrentValue[FEObject,ShowSelection]], Hold[CurrentValue[FEObject,ShowSyntaxStyles]], Hold[CurrentValue[FEObject,StyleDefinitions]], Hold[CurrentValue[FEObject,StyleNameDialogSettings]], Hold[CurrentValue[FEObject,TransitionEffect]], Hold[CurrentValue[FEObject,Visible]], Hold[CurrentValue[FEObject,WindowElements]], Hold[CurrentValue[FEObject,WindowMargins]], Hold[CurrentValue[FEObject,WindowOpacity]], Hold[CurrentValue[FEObject,WindowSize]], Hold[CurrentValue[FEObject,WindowStatusArea]], Hold[CurrentValue[FEObject,WindowTitle]] 

The list of them with object and listed second argument is too extensive to post here (I tried) but here is are the primary groups and with blanks where option names go:

Hold[CurrentValue[FEObject,{"AutoStyleOptions",_}]], Hold[CurrentValue[FEObject,{"ByteCount",_}]], Hold[CurrentValue[FEObject,{"CellChangeTimesList",_}]], Hold[CurrentValue[FEObject,{"CellCount",_}]], Hold[CurrentValue[FEObject,{"CodeAssistOptions",_}]], Hold[CurrentValue[FEObject,{"DebuggerSettings",_}]], Hold[CurrentValue[FEObject,{"Graphics3DBoxOptionsClipPlanes",_}]], Hold[CurrentValue[FEObject,{"Graphics3DBoxOptionsClipPlanesStyle",_}]], Hold[CurrentValue[FEObject,{"NotebookSecurityOptions",_}]], Hold[CurrentValue[FEObject,{"PreferencesSettings",_}]], Hold[CurrentValue[FEObject,{"PrintingOptions",_}]], Hold[CurrentValue[FEObject,{"Raster3DBoxOptionsPlotRange",_}]], Hold[CurrentValue[FEObject,{"Raster3DBoxOptionsPlotRangeClipPlanesStyle",_}]], Hold[CurrentValue[FEObject,{"WolframCloudSettings",_}]], Hold[CurrentValue[FEObject,{AutoStyleOptions,_}]], Hold[CurrentValue[FEObject,{CellBracketOptions,_}]], Hold[CurrentValue[FEObject,{CommonDefaultFormatTypes,_}]], Hold[CurrentValue[FEObject,{DigitBlock,_}]], Hold[CurrentValue[FEObject,{DigitBlockMinimum,_}]], Hold[CurrentValue[FEObject,{FindSettings,_}]], Hold[CurrentValue[FEObject,{Graphics3DBoxOptions,_}]], Hold[CurrentValue[FEObject,{MessageOptions,_}]], Hold[CurrentValue[FEObject,{NewPrimitiveStyle,_}]], Hold[CurrentValue[FEObject,{NotebookConvertSettings,_}]], Hold[CurrentValue[FEObject,{PageFooterLines,_}]], Hold[CurrentValue[FEObject,{PageHeaderLines,_}]], Hold[CurrentValue[FEObject,{PrintingOptions,_}]], Hold[CurrentValue[FEObject,{PrivateFrontEndOptions,_}]], Hold[CurrentValue[FEObject,{PrivateNotebookOptions,_}]], Hold[CurrentValue[FEObject,{RenderingOptions,_}]], Hold[CurrentValue[FEObject,{TaggingRules,_}]], Hold[CurrentValue[FEObject,{TranslationOptions,_}]], Hold[CurrentValue[FEObject,{"DialogSettings",_,_}]], Hold[CurrentValue[FEObject,{CellFrameLabels,_,_}]], Hold[CurrentValue[FEObject,{ConversionOptions,_,_}]], Hold[CurrentValue[FEObject,{PageFooters,_,_}]], Hold[CurrentValue[FEObject,{PageHeaders,_,_}]] 

Hopefully this is helpful.

And then for getting this code off this page:

SEImportCode[url_]:= StringCases[Import[url,"Text"],("<code>" ~~ c : Shortest[__] ~~ "</code>" :> c)] 

This will pull the raw code sections which you can then work with.

$\endgroup$
1
  • $\begingroup$ I see that my comment made few minutes ago about a plain text search of the installation files was superfluous. $\endgroup$ Commented Dec 12, 2016 at 9:36

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.