Skip to main content
Bounty Ended with 50 reputation awarded by billc
added 2 characters in body
Source Link
Karsten7
  • 27.6k
  • 5
  • 74
  • 135

So I mentioned this in a comment but I'll get it out here for the bounty poster too. Searching for the "JLink"JLink`""` in the autocomplete directory gave me this:

FileNameJoin@{$InstallationDirectory, "SystemFiles", "Components", "AutoCompletionData", "Main", "documentedContexts.m"}

If we look at what's inside it:

FileNameJoin@{$InstallationDirectory, "SystemFiles", "Components", 
    "AutoCompletionData", "Main", "documentedContexts.m"} // 
  Import // NewlineateInput

{
 "System`",
 "ANOVA`",
 "BlackBodyRadiation`",
 "Compatibility`",
 "ComputerArithmetic`",
 "DatabaseLink`",
 "EquationTrekker`",
 "FiniteFields`",
 "JLink`",
 "NETLink`",
 "CUDALink`",
 "OpenCLLink`",
 "TetGenLink`",
 "RLink`",
 "CCodeGenerator`",
 "SymbolicC`",
 "NonlinearRegression`",
 "PhysicalConstants`",
 "PolyhedronOperations`",
 "Quaternions`",
 "ResonanceAbsorptionLines`",
 "StandardAtmosphere`",
 "VariationalMethods`",
 "LibraryLink`",
 "CCompilerDriver`",
 "Audio`",
 "FunctionApproximations`",
 "GUIKit`",
 "HierarchicalClustering`",
 "HypothesisTesting`",
 "MultivariateStatistics`",
 "Music`",
 "Notation`",
 "NumericalDifferentialEquationAnalysis`",
 "StatisticalPlots`"
 }

I'll add something:

FileNameJoin@{$InstallationDirectory, "SystemFiles", "Components", 
    "AutoCompletionData", "Main", "documentedContexts.m"} // 
  Import // Last

"ChemTools`"

and we can see the i appears on reload:

A wild i appears!

Haven't figured out how to set this at the paclet level though, or even in $UserBaseDirectory.

Note that this is for 11

For 10 it seems the file is

FileNameJoin@{$InstallationDirectory, "SystemFiles", "FrontEnd", 
  "SystemResources", "FunctionalFrequency", "documentedContexts.m"}

Another cool file seems to be obsoleteFunctions.m which turns out to be a list of names to not autocomplete, even though they're in the language. I added Print, restarted, and got this:

no print :o

Note that Print is no longer completed by the FE.

There is also internalFunctions.m which has a similar effect. That contains things like DeclareKnownSymbols, and AutoStyleOptions which don't get autocompleted either, but I suppose are there because they're still used in the language.

Then there are the developerFunctions.m which are clearly contexts that don't get filled out by autocomplete (think NotebookTools`FlattenCellGroups -- NotebookTools` is in there).

So I mentioned this in a comment but I'll get it out here for the bounty poster too. Searching for the "JLink"` in the autocomplete directory gave me this:

FileNameJoin@{$InstallationDirectory, "SystemFiles", "Components", "AutoCompletionData", "Main", "documentedContexts.m"}

If we look at what's inside it:

FileNameJoin@{$InstallationDirectory, "SystemFiles", "Components", 
    "AutoCompletionData", "Main", "documentedContexts.m"} // 
  Import // NewlineateInput

{
 "System`",
 "ANOVA`",
 "BlackBodyRadiation`",
 "Compatibility`",
 "ComputerArithmetic`",
 "DatabaseLink`",
 "EquationTrekker`",
 "FiniteFields`",
 "JLink`",
 "NETLink`",
 "CUDALink`",
 "OpenCLLink`",
 "TetGenLink`",
 "RLink`",
 "CCodeGenerator`",
 "SymbolicC`",
 "NonlinearRegression`",
 "PhysicalConstants`",
 "PolyhedronOperations`",
 "Quaternions`",
 "ResonanceAbsorptionLines`",
 "StandardAtmosphere`",
 "VariationalMethods`",
 "LibraryLink`",
 "CCompilerDriver`",
 "Audio`",
 "FunctionApproximations`",
 "GUIKit`",
 "HierarchicalClustering`",
 "HypothesisTesting`",
 "MultivariateStatistics`",
 "Music`",
 "Notation`",
 "NumericalDifferentialEquationAnalysis`",
 "StatisticalPlots`"
 }

I'll add something:

FileNameJoin@{$InstallationDirectory, "SystemFiles", "Components", 
    "AutoCompletionData", "Main", "documentedContexts.m"} // 
  Import // Last

"ChemTools`"

and we can see the i appears on reload:

A wild i appears!

Haven't figured out how to set this at the paclet level though, or even in $UserBaseDirectory.

Note that this is for 11

For 10 it seems the file is

FileNameJoin@{$InstallationDirectory, "SystemFiles", "FrontEnd", 
  "SystemResources", "FunctionalFrequency", "documentedContexts.m"}

Another cool file seems to be obsoleteFunctions.m which turns out to be a list of names to not autocomplete, even though they're in the language. I added Print, restarted, and got this:

no print :o

Note that Print is no longer completed by the FE.

There is also internalFunctions.m which has a similar effect. That contains things like DeclareKnownSymbols, and AutoStyleOptions which don't get autocompleted either, but I suppose are there because they're still used in the language.

Then there are the developerFunctions.m which are clearly contexts that don't get filled out by autocomplete (think NotebookTools`FlattenCellGroups -- NotebookTools` is in there).

So I mentioned this in a comment but I'll get it out here for the bounty poster too. Searching for the "JLink`" in the autocomplete directory gave me this:

FileNameJoin@{$InstallationDirectory, "SystemFiles", "Components", "AutoCompletionData", "Main", "documentedContexts.m"}

If we look at what's inside it:

FileNameJoin@{$InstallationDirectory, "SystemFiles", "Components", 
    "AutoCompletionData", "Main", "documentedContexts.m"} // 
  Import // NewlineateInput

{
 "System`",
 "ANOVA`",
 "BlackBodyRadiation`",
 "Compatibility`",
 "ComputerArithmetic`",
 "DatabaseLink`",
 "EquationTrekker`",
 "FiniteFields`",
 "JLink`",
 "NETLink`",
 "CUDALink`",
 "OpenCLLink`",
 "TetGenLink`",
 "RLink`",
 "CCodeGenerator`",
 "SymbolicC`",
 "NonlinearRegression`",
 "PhysicalConstants`",
 "PolyhedronOperations`",
 "Quaternions`",
 "ResonanceAbsorptionLines`",
 "StandardAtmosphere`",
 "VariationalMethods`",
 "LibraryLink`",
 "CCompilerDriver`",
 "Audio`",
 "FunctionApproximations`",
 "GUIKit`",
 "HierarchicalClustering`",
 "HypothesisTesting`",
 "MultivariateStatistics`",
 "Music`",
 "Notation`",
 "NumericalDifferentialEquationAnalysis`",
 "StatisticalPlots`"
 }

I'll add something:

FileNameJoin@{$InstallationDirectory, "SystemFiles", "Components", 
    "AutoCompletionData", "Main", "documentedContexts.m"} // 
  Import // Last

"ChemTools`"

and we can see the i appears on reload:

A wild i appears!

Haven't figured out how to set this at the paclet level though, or even in $UserBaseDirectory.

Note that this is for 11

For 10 it seems the file is

FileNameJoin@{$InstallationDirectory, "SystemFiles", "FrontEnd", 
  "SystemResources", "FunctionalFrequency", "documentedContexts.m"}

Another cool file seems to be obsoleteFunctions.m which turns out to be a list of names to not autocomplete, even though they're in the language. I added Print, restarted, and got this:

no print :o

Note that Print is no longer completed by the FE.

There is also internalFunctions.m which has a similar effect. That contains things like DeclareKnownSymbols, and AutoStyleOptions which don't get autocompleted either, but I suppose are there because they're still used in the language.

Then there are the developerFunctions.m which are clearly contexts that don't get filled out by autocomplete (think NotebookTools`FlattenCellGroups -- NotebookTools` is in there).

Source Link
b3m2a1
  • 47.1k
  • 3
  • 95
  • 245

So I mentioned this in a comment but I'll get it out here for the bounty poster too. Searching for the "JLink"` in the autocomplete directory gave me this:

FileNameJoin@{$InstallationDirectory, "SystemFiles", "Components", "AutoCompletionData", "Main", "documentedContexts.m"}

If we look at what's inside it:

FileNameJoin@{$InstallationDirectory, "SystemFiles", "Components", 
    "AutoCompletionData", "Main", "documentedContexts.m"} // 
  Import // NewlineateInput

{
 "System`",
 "ANOVA`",
 "BlackBodyRadiation`",
 "Compatibility`",
 "ComputerArithmetic`",
 "DatabaseLink`",
 "EquationTrekker`",
 "FiniteFields`",
 "JLink`",
 "NETLink`",
 "CUDALink`",
 "OpenCLLink`",
 "TetGenLink`",
 "RLink`",
 "CCodeGenerator`",
 "SymbolicC`",
 "NonlinearRegression`",
 "PhysicalConstants`",
 "PolyhedronOperations`",
 "Quaternions`",
 "ResonanceAbsorptionLines`",
 "StandardAtmosphere`",
 "VariationalMethods`",
 "LibraryLink`",
 "CCompilerDriver`",
 "Audio`",
 "FunctionApproximations`",
 "GUIKit`",
 "HierarchicalClustering`",
 "HypothesisTesting`",
 "MultivariateStatistics`",
 "Music`",
 "Notation`",
 "NumericalDifferentialEquationAnalysis`",
 "StatisticalPlots`"
 }

I'll add something:

FileNameJoin@{$InstallationDirectory, "SystemFiles", "Components", 
    "AutoCompletionData", "Main", "documentedContexts.m"} // 
  Import // Last

"ChemTools`"

and we can see the i appears on reload:

A wild i appears!

Haven't figured out how to set this at the paclet level though, or even in $UserBaseDirectory.

Note that this is for 11

For 10 it seems the file is

FileNameJoin@{$InstallationDirectory, "SystemFiles", "FrontEnd", 
  "SystemResources", "FunctionalFrequency", "documentedContexts.m"}

Another cool file seems to be obsoleteFunctions.m which turns out to be a list of names to not autocomplete, even though they're in the language. I added Print, restarted, and got this:

no print :o

Note that Print is no longer completed by the FE.

There is also internalFunctions.m which has a similar effect. That contains things like DeclareKnownSymbols, and AutoStyleOptions which don't get autocompleted either, but I suppose are there because they're still used in the language.

Then there are the developerFunctions.m which are clearly contexts that don't get filled out by autocomplete (think NotebookTools`FlattenCellGroups -- NotebookTools` is in there).