从昨天开始一直在挖掘 MonoDevelop 2.6.0.1 源代码后,我终于找到了必要的代码更改。我想我会把它放出来以供参考,以防有人感兴趣。
原来 MonoDevelop 中的“欢迎页面”由 WelcomePage 插件表示。反过来,插件的视觉部分由类MonoDevelop.WelcomePage.WelcomePageView 表示。这里有一个方法GetRecentProjects(),它实际上检索要显示的项目列表。
通过这种方法,控制权可以传递到RecentFileStorage 类中的DefaultPath 属性,该属性提供了默认存储最近项目xml 的位置。它被定义为
public static string DefaultPath {
get {
return Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), ".recently-used");
}
}
Environment.SpecialFolder.Personal枚举值代表当前用户的个人文件夹;就我而言,它是/home/ken 请注意,这里没有版本信息。这意味着最近文件列表将始终引用文件/home/ken/.recently-used,无论您运行的是哪个版本的 MonoDevelop。此外,文件的布局不适应多个版本,因此唯一的方法是重定向此文件的位置。这很容易做到,只需将上述属性更改为类似
public static string DefaultPath {
get {
return Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "MonoDevelop2_6", ".recently-used");
}
}
在构建之前。
我个人认为这些东西应该分开,因为这是一个简单的改变,我可能会推动一些版本信息添加到.recently-used文件的路径中,或者以其他方式添加它到文件的内容。