mathematica中的命令完成:建议规则/选项

Pra*_*ate 11 reflection wolfram-mathematica keyboard-shortcuts

在当前版本的Mathematica中,这些键盘快捷键非常方便

Ctrl+K 完成当前命令

GraphPl -> press Ctrl+K  -> GraphPlot
Run Code Online (Sandbox Code Playgroud)

Ctrl+Shift+K完成当前命令并添加可以用tabkey 替换为实际值的参数占位符

GraphPl -> press Ctrl+Shift+K  ->  GraphPlot[{vi1->vj1,vi2->vj2,...}]
Run Code Online (Sandbox Code Playgroud)

但是,我找不到任何键盘选项来显示相关的设置/选项

例如说如果我需要绘制具有不同布局的图形,我知道我需要使用其中一个可能的设置来设置方法

  • "CircularEmbedding"
  • "RandomEmbedding"
  • "HighDimensionalEmbedding"
  • "RadialDrawing"
  • "SpringEmbedding"
  • "SpringElectricalEmbedding"

两件事情

首先如何自动完成这些选项,是否有快捷键?

GraphPlot[sg, Method -> <what keyboard shortcut to display all possible options>]
Run Code Online (Sandbox Code Playgroud)

其次,如何以list编程方式生成以下PopupMenu

  list={
   "CircularEmbedding"
   , "RandomEmbedding"
   , "HighDimensionalEmbedding"
   , "RadialDrawing"
   , "SpringEmbedding"
   , "SpringElectricalEmbedding"
   }
Manipulate[GraphPlot[sg, Method -> m], {m, list}, ControlType -> PopupMenu]
Run Code Online (Sandbox Code Playgroud)

有没有办法反省Mathematica函数和访问方法元数据类似于在其他编程语言中可以完成的方式,比如在Java中使用反射?

Pra*_*ate 1

草案:正在进行中...

这是迄今为止我能达到的最接近的,尽管它需要大量的增强,添加它是因为它希望从社区获得一些想法。如果有人可以帮助进一步增强它,或者提出任何想法,我们将不胜感激。

ruleOfRule[list_] := Map[Rule[#, #] &, list];
Manipulate[
 GraphPlot @@ {{"A" -> "B", "B" -> "C", "C" -> "A"}, 
   options}, {{options, {}}, ruleOfRule[Options[GraphPlot]]}, 
 ControlType -> CheckboxBar]
Run Code Online (Sandbox Code Playgroud)

选项

  • @Mr.Wizard 我觉得 WRi 比社区更有能力完成这项任务。我想他们已经有了一个选项数据库。我完全支持合作项目,但这似乎浪费了大量的精力来实现 WRI 可以轻松完成的事情。 (6认同)
  • @Sjoerd 也许这就是这个社区的用武之地?我们能否共同努力详细说明大多数功能的选项值,并在实践中实现类似的功能?如果mathematica.SE网站成为现实,我希望“合作项目”部分成为其中的一部分。 (2认同)