为什么python没有看到我对代码所做的更改?

2024-09-27 19:13:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试为httpdomain Sphinx doc扩展定制解析器/lexer。我安装在一个给定的dir中,并将dir添加到系统路径如文件所述。在

然后我编译了Sphinx文档,http被正确地突出显示。在

现在,我需要对分机做个小改动。我从随机改变httpdomain.py文件位于扩展名的dir中,它正确地生成了无效语法的错误。在

接下来,我通过用HTTTP(一个额外的T)替换HTTP令牌来更改lexer。我的想法是看看doc中包含HTTTP的条目是否被高亮显示,而不是HTTP。在

问题是我所做的一切似乎都不会改变输出。HTTP继续被着色,HTTTP被忽略。在

这是lexer中包含我的更改的部分:

tokens = {
    'root': [
        (r'(GET|POST|PUT|PATCH|DELETE|HEAD|OPTIONS|TRACE)( +)([^ ]+)( +)'
         r'(HTTTPS?)(/)(1\.[013])(\r?\n|$)',
         bygroups(Name.Function, Text, Name.Namespace, Text,
                  Keyword.Reserved, Operator, Number, Text),
         'headers'),
        (r'(HTTTPS?)(/)(1\.[013])( +)(\d{3})( +)([^\r\n]+)(\r?\n|$)',
         bygroups(Keyword.Reserved, Operator, Number, Text, Number,
                  Text, Name.Exception, Text),
         'headers'),

         (r'([^\s:]+)( *)(:)( *)([^\r\n]+)(\r?\n|$)', header_callback),
         (r'([\t ]+)([^\r\n]+)(\r?\n|$)', continuous_header_callback),
         (r'\r?\n', Text, 'content')
    ],
    'headers': [
        (r'([^\s:]+)( *)(:)( *)([^\r\n]+)(\r?\n|$)', header_callback),
        (r'([\t ]+)([^\r\n]+)(\r?\n|$)', continuous_header_callback),
        (r'\r?\n', Text, 'content')
    ],
    'content': [
        (r'.+', content_callback)
    ]
}

注意,“HTTP”被更改为“HTTTP”,因此我希望包含HTTTP的doc中的条目现在是彩色的,但是没有任何更改。在

我在文档缓存中看到了一些问题,所以没有更新文档。在

我还删除了Python创建的名为__pycache__的文件夹,结果没有改变。我还试着注释掉lexer中的所有标记,没有变化。如果我插入无效语法,那么它将失败。如果语法是正确的,它似乎使用了原始代码而没有我的更改。在

有没有其他我应该清理的地方?在

我对Python完全陌生,所以我有点迷路了。在

注:这个HTTTP只是一个测试。一旦我开始工作,我会做出真正的改变。在


Tags: textname文档httpnumberdocdircallback
2条回答

结果发现代码的更改是可见的,但lexer从未使用过,因为Pygments还注册了一个名为html的lexer。所以我用我的:app.add_lexer('http', HTTPLexer())替换它,我开始看到我的更改影响到生成的文档。在

尝试删除*.pyc文件并重新启动扩展

相关问题 更多 >

    热门问题