我正在努力突出一个小脚本语言(这不是任何内置的衍生物),我有一个自定义XML文件设置不同的语法关键字等.
我真的想使用AvalonEdit中存在的XSHD系统来加载自定义关键字,但我需要在其中包含自定义属性.
所以基本上,经过大量的源代码搜索,我无法确定读取和指定关键字和规则集的文件.
有没有人知道我在哪里可以编辑所需的类来读取一些自定义属性并存储它们?
我在AvalonEdit中有所有的XSHD和高亮显示的东西都在工作,所以它没有使用它就是问题,更确切地说,它是在XSHD文件的关键字集合中使用自定义属性的问题.
例如:
<Keywords>
<Word defaultValue="hello" requiresShader="shadertype1, shadertype2" someCustomAttr="value">wordname</word>
</Keyword>
Run Code Online (Sandbox Code Playgroud)
因此,我需要为XSHD文件的解析器设置一些自定义属性,以加载这些自定义属性并将它们存储在我所处理的自定义类中,该类处理一些对我正在尝试的操作至关重要的逻辑组件.
我已经有了一个工作解析器来解析我所有关键字及其属性的XML文件(但是我把它写到了ScintillaNET,但之后发现了AvalonEdit,这对WPF等更好).
我将使用此信息编辑原始帖子,抱歉可能存在错误信息.
谢谢
我有一个广泛实现的接口,它有一个具有特定接口的IList.而不是大量的文字,看看这里:
interface ILanguage
{
IList<ITriggers> CompletionTriggers { get; set; }
}
public class Language : ILanguage
{
public Constructor()
{
CompletionTriggers = new List<CompletionTrigger>();
}
}
Run Code Online (Sandbox Code Playgroud)
这基本上就是我想要做的."触发器"是接口的成员,由几种类型实现.但是每种类型都需要一个自定义的ITrigger实现和List(我使用IList,因为它看起来非常方便).
错误显示"缺少一个演员?",但我发现这很奇怪,因为它们都是直接实现IList和ITrigger(List和CompletionTrigger)的对象.
我认为这是一件容易的事情,但是为什么它表现得像这样的一些观点非常感谢!
我正在使用 boost::signals2 创建一个类,该类使用信号在特定条件下运行事件。这个类有一个方法叫做:RegisterCallback。
此函数应采用信号使用的槽类型的参数(它是void返回类型,双精度值作为唯一的参数)。
但是,我不太确定应该如何在方法签名中定义该参数,因为信号 1 类的源文件对我来说非常不可读。
所以我基本上想这样做:
myTimer(interval);
myTimer.RegisterCallback(&aCallbackFunction);
Run Code Online (Sandbox Code Playgroud)
这是会员信号:
boost::signals2::signal<void (double)> m_signal;
Run Code Online (Sandbox Code Playgroud)
...这是我需要的注册方法(未完成)
/**
* Register a callback function that will be called when the timer interval elapses.
*/
void RegisterCallback(const boost::signals2::signal1<???????> &slot)
{
m_signal.connect(slot);
}
Run Code Online (Sandbox Code Playgroud)