vscode-ltex icon indicating copy to clipboard operation
vscode-ltex copied to clipboard

Make the extension work with Rust's module-level documentation comments

Open martinmr opened this issue 2 years ago • 0 comments

Describe the bug Module-level doc comments in Rust (starting with //!) do not work with the extension.

Steps to reproduce Steps to reproduce the behavior:

  • Type a module-level document at the start of a rust file
  • Make a typo. The typo is not detected.
  • Replace //! with //. The typo is detected.

Expected behavior The extension works with Rust's module-level comments.

Sample document If the bug occurs for a specific document (e.g. LaTeX), please paste it here. If your document is very long or confidential, please create and attach a smaller example for which the bug still occurs so that we can reproduce it.

//! Defines the operations that can be performed on a collection of courses stored by the student.
//!
//! A course library (the term Trane library will be used interchangably) is a collection of courses
//! that the student wishes to practice together. Courses, lessons, and exercises are defined by
//! their manifest files (see data.rs).

use std::{fs::File, io::BufReader, path::Path, sync::Arc};

use anyhow::{anyhow, ensure, Result};
use parking_lot::RwLock;
use serde::de::DeserializeOwned;
use ustr::{Ustr, UstrMap};
use walkdir::{DirEntry, WalkDir};

use crate::{
    data::{CourseManifest, ExerciseManifest, LessonManifest, NormalizePaths, UnitType},
    graph::{InMemoryUnitGraph, UnitGraph},
};

[... truncated]

LTeX configuration Please paste all configuration settings starting with ltex. from your settings.json. You can help us by temporarily removing some irrelevant settings from your settings.json and see if the bug still occurs.

{
  "enabled": [
    "bibtex",
    "context",
    "context.tex",
    "html",
    "latex",
    "markdown",
    "org",
    "restructuredtext",
    "rust"
  ],
  "language": "en-US",
  "dictionary": {},
  "disabledRules": {
    "en-US": [
      "ENGLISH_WORD_REPEAT_BEGINNING_RULE"
    ]
  },
  "enabledRules": {},
  "hiddenFalsePositives": {},
  "bibtex": {
    "fields": {}
  },
  "latex": {
    "commands": {},
    "environments": {}
  },
  "markdown": {
    "nodes": {}
  },
  "configurationTarget": {
    "dictionary": "workspaceFolder",
    "disabledRules": "user",
    "hiddenFalsePositives": "user"
  },
  "additionalRules": {
    "enablePickyRules": true,
    "motherTongue": "",
    "languageModel": "",
    "neuralNetworkModel": "",
    "word2VecModel": ""
  },
  "languageToolHttpServerUri": "",
  "languageToolOrg": {
    "username": "",
    "apiKey": ""
  },
  "ltex-ls": {
    "path": "",
    "logLevel": "fine",
    "languageToolHttpServerUri": "",
    "languageToolOrgUsername": "",
    "languageToolOrgApiKey": ""
  },
  "java": {
    "path": "",
    "initialHeapSize": 64,
    "maximumHeapSize": 512
  },
  "sentenceCacheSize": 2000,
  "completionEnabled": false,
  "diagnosticSeverity": "information",
  "checkFrequency": "edit",
  "clearDiagnosticsWhenClosingFile": true,
  "statusBarItem": false,
  "trace": {
    "server": "verbose"
  }
}

"LTeX Language Server" log file First, reproduce the bug. Then, go to ViewOutput and select LTeX Language Server in the drop-down list. Paste this log here:

[... truncated]
FINE: Checking the following text in language 'en-US' via LanguageTool: "\n\n\nsdfasdfk s asdfsdafsdf.\n\n\nThe file name for all course manifests.\n\n\nThe file name for all lesson "... (truncated to 100 characters)
Aug 25, 2022 9:08:55 PM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment
FINE: Obtained 14 rule matches
Aug 25, 2022 9:08:55 PM org.bsplines.ltexls.server.DocumentChecker logTextToBeChecked
FINE: Checking the following text in language 'en-US' via LanguageTool: "\n\n\nsdfasdfk sds asdfsdafsdf.\n\n\nThe file name for all course manifests.\n\n\nThe file name for all lesso"... (truncated to 100 characters)
Aug 25, 2022 9:08:55 PM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment
FINE: Obtained 15 rule matches
Aug 25, 2022 9:09:48 PM org.eclipse.lsp4j.jsonrpc.services.GenericEndpoint notify
INFO: Unsupported notification method: $/setTrace
Aug 25, 2022 9:09:48 PM org.bsplines.ltexls.server.DocumentChecker logTextToBeChecked
FINE: Checking the following text in language 'en-US' via LanguageTool: "\n\n\nThe score used by students to evaluate their mastery of a particular exercise after a trial.\nMore"... (truncated to 100 characters)
Aug 25, 2022 9:09:48 PM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment
FINE: Obtained 0 rule matches
Aug 25, 2022 9:09:48 PM org.bsplines.ltexls.server.DocumentChecker logTextToBeChecked
FINE: Checking the following text in language 'en-US' via LanguageTool: "\n\n\nsdfasdfk sds asdfsdafsdf.\n\n\nThe file name for all course manifests.\n\n\nThe file name for all lesso"... (truncated to 100 characters)
Aug 25, 2022 9:09:48 PM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment
FINE: Obtained 15 rule matches
Aug 25, 2022 9:09:48 PM org.bsplines.ltexls.server.DocumentChecker logTextToBeChecked
FINE: Checking the following text in language 'en-US' via LanguageTool: "\n\n\nThe batch size will be multiplied by this factor in order to expand the range of the search and\na"... (truncated to 100 characters)
Aug 25, 2022 9:09:48 PM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment
FINE: Obtained 9 rule matches
Aug 25, 2022 9:10:10 PM org.eclipse.lsp4j.jsonrpc.services.GenericEndpoint notify
INFO: Unsupported notification method: $/setTrace
Aug 25, 2022 9:10:10 PM org.bsplines.ltexls.server.DocumentChecker logTextToBeChecked
FINE: Checking the following text in language 'en-US' via LanguageTool: "\n\n\nThe score used by students to evaluate their mastery of a particular exercise after a trial.\nMore"... (truncated to 100 characters)
Aug 25, 2022 9:10:10 PM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment
FINE: Obtained 0 rule matches
Aug 25, 2022 9:10:10 PM org.bsplines.ltexls.server.DocumentChecker logTextToBeChecked
FINE: Checking the following text in language 'en-US' via LanguageTool: "\n\n\nsdfasdfk sds asdfsdafsdf.\n\n\nThe file name for all course manifests.\n\n\nThe file name for all lesso"... (truncated to 100 characters)
Aug 25, 2022 9:10:10 PM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment
FINE: Obtained 15 rule matches
Aug 25, 2022 9:10:10 PM org.bsplines.ltexls.server.DocumentChecker logTextToBeChecked
FINE: Checking the following text in language 'en-US' via LanguageTool: "\n\n\nThe batch size will be multiplied by this factor in order to expand the range of the search and\na"... (truncated to 100 characters)
Aug 25, 2022 9:10:10 PM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment
FINE: Obtained 9 rule matches
Aug 25, 2022 9:10:17 PM org.eclipse.lsp4j.jsonrpc.services.GenericEndpoint notify
INFO: Unsupported notification method: $/setTrace
Aug 25, 2022 9:10:17 PM org.bsplines.ltexls.server.DocumentChecker logTextToBeChecked
FINE: Checking the following text in language 'en-US' via LanguageTool: "\n\n\nThe score used by students to evaluate their mastery of a particular exercise after a trial.\nMore"... (truncated to 100 characters)
Aug 25, 2022 9:10:17 PM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment
FINE: Obtained 0 rule matches
Aug 25, 2022 9:10:17 PM org.bsplines.ltexls.server.DocumentChecker logTextToBeChecked
FINE: Checking the following text in language 'en-US' via LanguageTool: "\n\n\nsdfasdfk sds asdfsdafsdf.\n\n\nThe file name for all course manifests.\n\n\nThe file name for all lesso"... (truncated to 100 characters)
Aug 25, 2022 9:10:17 PM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment
FINE: Obtained 15 rule matches
Aug 25, 2022 9:10:17 PM org.bsplines.ltexls.server.DocumentChecker logTextToBeChecked
FINE: Checking the following text in language 'en-US' via LanguageTool: "\n\n\nThe batch size will be multiplied by this factor in order to expand the range of the search and\na"... (truncated to 100 characters)
Aug 25, 2022 9:10:17 PM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment
FINE: Obtained 9 rule matches
Aug 25, 2022 9:10:35 PM org.bsplines.ltexls.server.DocumentChecker logTextToBeChecked
FINE: Checking the following text in language 'en-US' via LanguageTool: "\n\n\nThe batch size will be multiplied by this factor in order to expand the range of the search and\na"... (truncated to 100 characters)
Aug 25, 2022 9:10:35 PM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment
FINE: Obtained 24 rule matches
Aug 25, 2022 9:10:35 PM org.bsplines.ltexls.server.DocumentChecker logTextToBeChecked
FINE: Checking the following text in language 'en-US' via LanguageTool: "\n\n\nThe batch size will be multiplied by this factor in order to expand the range of the search and\na"... (truncated to 100 characters)
Aug 25, 2022 9:10:35 PM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment
FINE: Obtained 24 rule matches
Aug 25, 2022 9:10:39 PM org.bsplines.ltexls.server.DocumentChecker logTextToBeChecked
FINE: Checking the following text in language 'en-US' via LanguageTool: "\n\n\nThe batch size will be multiplied by this factor in order to expand the range of the search and\na"... (truncated to 100 characters)
Aug 25, 2022 9:10:39 PM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment
FINE: Obtained 24 rule matches
Aug 25, 2022 9:10:47 PM org.bsplines.ltexls.server.DocumentChecker logTextToBeChecked
FINE: Checking the following text in language 'en-US' via LanguageTool: "\n\n\nDefines and implements the asdfsdfsdfkjsks ksajfkasjdf kjsdf kskskkkkk data structures used to sc"... (truncated to 100 characters)
Aug 25, 2022 9:10:47 PM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment
FINE: Obtained 28 rule matches
Aug 25, 2022 9:10:48 PM org.bsplines.ltexls.server.DocumentChecker logTextToBeChecked
FINE: Checking the following text in language 'en-US' via LanguageTool: "\n\n\nDefines and implements the asdfsdfsdfkjsks ksajfkasjdf kjsdf kskskkkkk data structures used to sc"... (truncated to 100 characters)
Aug 25, 2022 9:10:48 PM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment
FINE: Obtained 31 rule matches
Aug 25, 2022 9:10:50 PM org.bsplines.ltexls.server.DocumentChecker logTextToBeChecked
FINE: Checking the following text in language 'en-US' via LanguageTool: "\n\n\nDefines and implements the asdfsdfsdfkjsks ksajfkasjdf kjsdf kskskkkkk data structures used to sc"... (truncated to 100 characters)
Aug 25, 2022 9:10:50 PM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment
FINE: Obtained 28 rule matches
Aug 25, 2022 9:10:50 PM org.bsplines.ltexls.server.DocumentChecker logTextToBeChecked
FINE: Checking the following text in language 'en-US' via LanguageTool: "\n\n\nThe batch size will be multiplied by this factor in order to expand the range of the search and\na"... (truncated to 100 characters)
Aug 25, 2022 9:10:50 PM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment
FINE: Obtained 24 rule matches
Aug 25, 2022 9:11:01 PM org.bsplines.ltexls.server.DocumentChecker logTextToBeChecked
FINE: Checking the following text in language 'en-US' via LanguageTool: "\n\n\nThe file name for all course manifests.\n\n\nThe file name for all lesson manifests.\n\n\nThe file name"... (truncated to 100 characters)
Aug 25, 2022 9:11:01 PM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment
FINE: Obtained 18 rule matches
Aug 25, 2022 9:11:08 PM org.bsplines.ltexls.server.DocumentChecker logTextToBeChecked
FINE: Checking the following text in language 'en-US' via LanguageTool: "\n\n\nThe file name for all course manifests.\n\n\nThe file name for all lesson manifests.\n\n\nThe file name"... (truncated to 100 characters)
Aug 25, 2022 9:11:08 PM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment
FINE: Obtained 18 rule matches
Aug 25, 2022 9:11:08 PM org.eclipse.lsp4j.jsonrpc.services.GenericEndpoint notify
INFO: Unsupported notification method: $/setTrace
Aug 25, 2022 9:11:08 PM org.bsplines.ltexls.server.DocumentChecker logTextToBeChecked
FINE: Checking the following text in language 'en-US' via LanguageTool: "\n\n\nThe score used by students to evaluate their mastery of a particular exercise after a trial.\nMore"... (truncated to 100 characters)
Aug 25, 2022 9:11:08 PM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment
FINE: Obtained 20 rule matches
Aug 25, 2022 9:11:08 PM org.bsplines.ltexls.server.DocumentChecker logTextToBeChecked
FINE: Checking the following text in language 'en-US' via LanguageTool: "\n\n\nThe file name for all course manifests.\n\n\nThe file name for all lesson manifests.\n\n\nThe file name"... (truncated to 100 characters)
Aug 25, 2022 9:11:09 PM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment
FINE: Obtained 14 rule matches
Aug 25, 2022 9:11:09 PM org.bsplines.ltexls.server.DocumentChecker logTextToBeChecked
FINE: Checking the following text in language 'en-US' via LanguageTool: "\n\n\nThe batch size will be multiplied by this factor in order to expand the range of the search and\na"... (truncated to 100 characters)
Aug 25, 2022 9:11:09 PM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment
FINE: Obtained 21 rule matches

"LTeX Language Client" log file First, set the ltex.trace.server setting in your settings.json to "verbose". Then, reload the VS Code window and reproduce the bug. Go to ViewOutput and select LTeX Language Client in the drop-down list. Paste this log here (note: it will contain your checked document):

[... truncated]
            "source": "LTeX",
            "message": "'json': Possible spelling mistake found."
        },
        {
            "range": {
                "start": {
                    "line": 74,
                    "character": 7
                },
                "end": {
                    "line": 74,
                    "character": 19
                }
            },
            "severity": 3,
            "code": "WORD_CONTAINS_UNDERSCORE",
            "codeDescription": {
                "href": "https://community.languagetool.org/rule/show/WORD_CONTAINS_UNDERSCORE?lang=en-US"
            },
            "source": "LTeX",
            "message": "An underscore (_) within a word is atypical (except in technical contexts, nicknames, etc.). Make sure that the word 'EXERCISE_DIR' is correct."
        },
        {
            "range": {
                "start": {
                    "line": 75,
                    "character": 26
                },
                "end": {
                    "line": 75,
                    "character": 30
                }
            },
            "severity": 3,
            "code": "MORFOLOGIK_RULE_EN_US",
            "codeDescription": {
                "href": "https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US"
            },
            "source": "LTeX",
            "message": "'json': Possible spelling mistake found."
        },
        {
            "range": {
                "start": {
                    "line": 76,
                    "character": 6
                },
                "end": {
                    "line": 76,
                    "character": 9
                }
            },
            "severity": 3,
            "code": "ELLIPSIS",
            "codeDescription": {
                "href": "https://community.languagetool.org/rule/show/ELLIPSIS?lang=en-US"
            },
            "source": "LTeX",
            "message": "Consider using the typographical ellipsis character here instead."
        }
    ]
}


[Trace - 9:11:09 PM] Received request 'window/workDoneProgress/create - (169)'.
Params: {
    "token": "{\"uri\":\"file:///home/martinmr/workspace/trane/src/scheduler.rs\",\"operation\":\"checkDocument\",\"uuid\":\"ff72b651-9c2c-830b-12a6-313c53ab0c9c\"}"
}


[Trace - 9:11:09 PM] Sending response 'window/workDoneProgress/create - (169)'. Processing request took 0ms
No result returned.


[Trace - 9:11:09 PM] Received notification '$/progress'.
Params: {
    "token": "{\"uri\":\"file:///home/martinmr/workspace/trane/src/scheduler.rs\",\"operation\":\"checkDocument\",\"uuid\":\"ff72b651-9c2c-830b-12a6-313c53ab0c9c\"}",
    "value": {
        "kind": "begin",
        "title": "Checking document",
        "cancellable": false,
        "message": "file:///home/martinmr/workspace/trane/src/scheduler.rs"
    }
}


[Trace - 9:11:09 PM] Received request 'workspace/configuration - (170)'.
Params: {
    "items": [
        {
            "scopeUri": "file:///home/martinmr/workspace/trane/src/scheduler.rs",
            "section": "ltex"
        }
    ]
}


[Trace - 9:11:09 PM] Sending response 'workspace/configuration - (170)'. Processing request took 1ms
Result: [
    {
        "enabled": [
            "bibtex",
            "context",
            "context.tex",
            "html",
            "latex",
            "markdown",
            "org",
            "restructuredtext",
            "rust"
        ],
        "language": "en-US",
        "dictionary": {},
        "disabledRules": {
            "en-US": [
                "ENGLISH_WORD_REPEAT_BEGINNING_RULE"
            ]
        },
        "enabledRules": {},
        "hiddenFalsePositives": {},
        "bibtex": {
            "fields": {}
        },
        "latex": {
            "commands": {},
            "environments": {}
        },
        "markdown": {
            "nodes": {}
        },
        "configurationTarget": {
            "dictionary": "workspaceFolder",
            "disabledRules": "user",
            "hiddenFalsePositives": "user"
        },
        "additionalRules": {
            "enablePickyRules": true,
            "motherTongue": "",
            "languageModel": "",
            "neuralNetworkModel": "",
            "word2VecModel": ""
        },
        "languageToolHttpServerUri": "",
        "languageToolOrg": {
            "username": "",
            "apiKey": ""
        },
        "ltex-ls": {
            "path": "",
            "logLevel": "fine",
            "languageToolHttpServerUri": "",
            "languageToolOrgUsername": "",
            "languageToolOrgApiKey": ""
        },
        "java": {
            "path": "",
            "initialHeapSize": 64,
            "maximumHeapSize": 512
        },
        "sentenceCacheSize": 2000,
        "completionEnabled": false,
        "diagnosticSeverity": "information",
        "checkFrequency": "edit",
        "clearDiagnosticsWhenClosingFile": true,
        "statusBarItem": false,
        "trace": {
            "server": "verbose"
        }
    }
]


[Trace - 9:11:09 PM] Received request 'ltex/workspaceSpecificConfiguration - (171)'.
Params: {
    "items": [
        {
            "scopeUri": "file:///home/martinmr/workspace/trane/src/scheduler.rs",
            "section": "ltex"
        }
    ]
}


[Trace - 9:11:09 PM] Sending response 'ltex/workspaceSpecificConfiguration - (171)'. Processing request took 19ms
Result: [
    {
        "dictionary": {
            "auto": [],
            "ar": [],
            "ast-ES": [],
            "be-BY": [],
            "br-FR": [],
            "ca-ES": [],
            "ca-ES-valencia": [],
            "da-DK": [],
            "de": [],
            "de-AT": [],
            "de-CH": [],
            "de-DE": [],
            "de-DE-x-simple-language": [],
            "el-GR": [],
            "en": [],
            "en-AU": [],
            "en-CA": [],
            "en-GB": [],
            "en-NZ": [],
            "en-US": [],
            "en-ZA": [],
            "eo": [],
            "es": [],
            "es-AR": [],
            "fa": [],
            "fr": [],
            "ga-IE": [],
            "gl-ES": [],
            "it": [],
            "ja-JP": [],
            "km-KH": [],
            "nl": [],
            "nl-BE": [],
            "pl-PL": [],
            "pt": [],
            "pt-AO": [],
            "pt-BR": [],
            "pt-MZ": [],
            "pt-PT": [],
            "ro-RO": [],
            "ru-RU": [],
            "sk-SK": [],
            "sl-SI": [],
            "sv": [],
            "ta-IN": [],
            "tl-PH": [],
            "uk-UA": [],
            "zh-CN": []
        },
        "disabledRules": {
            "auto": [],
            "ar": [],
            "ast-ES": [],
            "be-BY": [],
            "br-FR": [],
            "ca-ES": [],
            "ca-ES-valencia": [],
            "da-DK": [],
            "de": [],
            "de-AT": [],
            "de-CH": [],
            "de-DE": [],
            "de-DE-x-simple-language": [],
            "el-GR": [],
            "en": [],
            "en-AU": [],
            "en-CA": [],
            "en-GB": [],
            "en-NZ": [],
            "en-US": [
                "ENGLISH_WORD_REPEAT_BEGINNING_RULE"
            ],
            "en-ZA": [],
            "eo": [],
            "es": [],
            "es-AR": [],
            "fa": [],
            "fr": [],
            "ga-IE": [],
            "gl-ES": [],
            "it": [],
            "ja-JP": [],
            "km-KH": [],
            "nl": [],
            "nl-BE": [],
            "pl-PL": [],
            "pt": [],
            "pt-AO": [],
            "pt-BR": [],
            "pt-MZ": [],
            "pt-PT": [],
            "ro-RO": [],
            "ru-RU": [],
            "sk-SK": [],
            "sl-SI": [],
            "sv": [],
            "ta-IN": [],
            "tl-PH": [],
            "uk-UA": [],
            "zh-CN": []
        },
        "enabledRules": {
            "auto": [],
            "ar": [],
            "ast-ES": [],
            "be-BY": [],
            "br-FR": [],
            "ca-ES": [],
            "ca-ES-valencia": [],
            "da-DK": [],
            "de": [],
            "de-AT": [],
            "de-CH": [],
            "de-DE": [],
            "de-DE-x-simple-language": [],
            "el-GR": [],
            "en": [],
            "en-AU": [],
            "en-CA": [],
            "en-GB": [],
            "en-NZ": [],
            "en-US": [],
            "en-ZA": [],
            "eo": [],
            "es": [],
            "es-AR": [],
            "fa": [],
            "fr": [],
            "ga-IE": [],
            "gl-ES": [],
            "it": [],
            "ja-JP": [],
            "km-KH": [],
            "nl": [],
            "nl-BE": [],
            "pl-PL": [],
            "pt": [],
            "pt-AO": [],
            "pt-BR": [],
            "pt-MZ": [],
            "pt-PT": [],
            "ro-RO": [],
            "ru-RU": [],
            "sk-SK": [],
            "sl-SI": [],
            "sv": [],
            "ta-IN": [],
            "tl-PH": [],
            "uk-UA": [],
            "zh-CN": []
        },
        "hiddenFalsePositives": {
            "auto": [],
            "ar": [],
            "ast-ES": [],
            "be-BY": [],
            "br-FR": [],
            "ca-ES": [],
            "ca-ES-valencia": [],
            "da-DK": [],
            "de": [],
            "de-AT": [],
            "de-CH": [],
            "de-DE": [],
            "de-DE-x-simple-language": [],
            "el-GR": [],
            "en": [],
            "en-AU": [],
            "en-CA": [],
            "en-GB": [],
            "en-NZ": [],
            "en-US": [],
            "en-ZA": [],
            "eo": [],
            "es": [],
            "es-AR": [],
            "fa": [],
            "fr": [],
            "ga-IE": [],
            "gl-ES": [],
            "it": [],
            "ja-JP": [],
            "km-KH": [],
            "nl": [],
            "nl-BE": [],
            "pl-PL": [],
            "pt": [],
            "pt-AO": [],
            "pt-BR": [],
            "pt-MZ": [],
            "pt-PT": [],
            "ro-RO": [],
            "ru-RU": [],
            "sk-SK": [],
            "sl-SI": [],
            "sv": [],
            "ta-IN": [],
            "tl-PH": [],
            "uk-UA": [],
            "zh-CN": []
        }
    }
]


[Trace - 9:11:09 PM] Received notification '$/progress'.
Params: {
    "token": "{\"uri\":\"file:///home/martinmr/workspace/trane/src/scheduler.rs\",\"operation\":\"checkDocument\",\"uuid\":\"ff72b651-9c2c-830b-12a6-313c53ab0c9c\"}",
    "value": {
        "kind": "end"
    }
}


[Trace - 9:11:09 PM] Received notification 'textDocument/publishDiagnostics'.
Params: {
    "uri": "file:///home/martinmr/workspace/trane/src/scheduler.rs",
    "diagnostics": [
        {
            "range": {
                "start": {
                    "line": 38,
                    "character": 75
                },
                "end": {
                    "line": 38,
                    "character": 78
                }
            },
            "severity": 3,
            "code": "MORFOLOGIK_RULE_EN_US",
            "codeDescription": {
                "href": "https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US"
            },
            "source": "LTeX",
            "message": "'lls': Possible spelling mistake found."
        },
        {
            "range": {
                "start": {
                    "line": 38,
                    "character": 79
                },
                "end": {
                    "line": 38,
                    "character": 84
                }
            },
            "severity": 3,
            "code": "ENGLISH_WORD_REPEAT_RULE",
            "codeDescription": {
                "href": "https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US"
            },
            "source": "LTeX",
            "message": "Possible typo: you repeated a word"
        },
        {
            "range": {
                "start": {
                    "line": 38,
                    "character": 85
                },
                "end": {
                    "line": 38,
                    "character": 90
                }
            },
            "severity": 3,
            "code": "MORFOLOGIK_RULE_EN_US",
            "codeDescription": {
                "href": "https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US"
            },
            "source": "LTeX",
            "message": "'sllll': Possible spelling mistake found."
        },
        {
            "range": {
                "start": {
                    "line": 39,
                    "character": 16
                },
                "end": {
                    "line": 39,
                    "character": 24
                }
            },
            "severity": 3,
            "code": "MORFOLOGIK_RULE_EN_US",
            "codeDescription": {
                "href": "https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US"
            },
            "source": "LTeX",
            "message": "'asdfasdf': Possible spelling mistake found."
        },
        {
            "range": {
                "start": {
                    "line": 101,
                    "character": 19
                },
                "end": {
                    "line": 101,
                    "character": 28
                }
            },
            "severity": 3,
            "code": "PASSIVE_VOICE",
            "codeDescription": {
                "href": "https://community.languagetool.org/rule/show/PASSIVE_VOICE?lang=en-US"
            },
            "source": "LTeX",
            "message": "The text seems to be passive voice. To make the text clearer and easier to read, you can often use the active voice."
        },
        {
            "range": {
                "start": {
                    "line": 181,
                    "character": 55
                },
                "end": {
                    "line": 181,
                    "character": 71
                }
            },
            "severity": 3,
            "code": "PASSIVE_VOICE",
            "codeDescription": {
                "href": "https://community.languagetool.org/rule/show/PASSIVE_VOICE?lang=en-US"
            },
            "source": "LTeX",
            "message": "The text seems to be passive voice. To make the text clearer and easier to read, you can often use the active voice."
        },
        {
            "range": {
                "start": {
                    "line": 215,
                    "character": 18
                },
                "end": {
                    "line": 215,
                    "character": 25
                }
            },
            "severity": 3,
            "code": "PASSIVE_VOICE",
            "codeDescription": {
                "href": "https://community.languagetool.org/rule/show/PASSIVE_VOICE?lang=en-US"
            },
            "source": "LTeX",
            "message": "The text seems to be passive voice. To make the text clearer and easier to read, you can often use the active voice."
        },
        {
            "range": {
                "start": {
                    "line": 221,
                    "character": 53
                },
                "end": {
                    "line": 221,
                    "character": 67
                }
            },
            "severity": 3,
            "code": "PASSIVE_VOICE",
            "codeDescription": {
                "href": "https://community.languagetool.org/rule/show/PASSIVE_VOICE?lang=en-US"
            },
            "source": "LTeX",
            "message": "The text seems to be passive voice. To make the text clearer and easier to read, you can often use the active voice."
        },
        {
            "range": {
                "start": {
                    "line": 230,
                    "character": 41
                },
                "end": {
                    "line": 230,
                    "character": 55
                }
            },
            "severity": 3,
            "code": "PASSIVE_VOICE",
            "codeDescription": {
                "href": "https://community.languagetool.org/rule/show/PASSIVE_VOICE?lang=en-US"
            },
            "source": "LTeX",
            "message": "The text seems to be passive voice. To make the text clearer and easier to read, you can often use the active voice."
        },
        {
            "range": {
                "start": {
                    "line": 236,
                    "character": 77
                },
                "end": {
                    "line": 236,
                    "character": 91
                }
            },
            "severity": 3,
            "code": "PASSIVE_VOICE",
            "codeDescription": {
                "href": "https://community.languagetool.org/rule/show/PASSIVE_VOICE?lang=en-US"
            },
            "source": "LTeX",
            "message": "The text seems to be passive voice. To make the text clearer and easier to read, you can often use the active voice."
        },
        {
            "range": {
                "start": {
                    "line": 246,
                    "character": 86
                },
                "end": {
                    "line": 246,
                    "character": 100
                }
            },
            "severity": 3,
            "code": "PASSIVE_VOICE",
            "codeDescription": {
                "href": "https://community.languagetool.org/rule/show/PASSIVE_VOICE?lang=en-US"
            },
            "source": "LTeX",
            "message": "The text seems to be passive voice. To make the text clearer and easier to read, you can often use the active voice."
        },
        {
            "range": {
                "start": {
                    "line": 288,
                    "character": 39
                },
                "end": {
                    "line": 288,
                    "character": 46
                }
            },
            "severity": 3,
            "code": "PASSIVE_VOICE",
            "codeDescription": {
                "href": "https://community.languagetool.org/rule/show/PASSIVE_VOICE?lang=en-US"
            },
            "source": "LTeX",
            "message": "The text seems to be passive voice. To make the text clearer and easier to read, you can often use the active voice."
        },
        {
            "range": {
                "start": {
                    "line": 306,
                    "character": 80
                },
                "end": {
                    "line": 306,
                    "character": 91
                }
            },
            "severity": 3,
            "code": "MORFOLOGIK_RULE_EN_US",
            "codeDescription": {
                "href": "https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US"
            },
            "source": "LTeX",
            "message": "'dpendencies': Possible spelling mistake found."
        },
        {
            "range": {
                "start": {
                    "line": 336,
                    "character": 27
                },
                "end": {
                    "line": 336,
                    "character": 37
                }
            },
            "severity": 3,
            "code": "PASSIVE_VOICE",
            "codeDescription": {
                "href": "https://community.languagetool.org/rule/show/PASSIVE_VOICE?lang=en-US"
            },
            "source": "LTeX",
            "message": "The text seems to be passive voice. To make the text clearer and easier to read, you can often use the active voice."
        },
        {
            "range": {
                "start": {
                    "line": 350,
                    "character": 97
                },
                "end": {
                    "line": 351,
                    "character": 22
                }
            },
            "severity": 3,
            "code": "COMMA_COMPOUND_SENTENCE_2",
            "codeDescription": {
                "href": "https://community.languagetool.org/rule/show/COMMA_COMPOUND_SENTENCE_2?lang=en-US"
            },
            "source": "LTeX",
            "message": "Use a comma before 'but' if it connects two independent clauses (unless they are closely connected and short)."
        },
        {
            "range": {
                "start": {
                    "line": 363,
                    "character": 33
                },
                "end": {
                    "line": 363,
                    "character": 35
                }
            },
            "severity": 3,
            "code": "NOW",
            "codeDescription": {
                "href": "https://community.languagetool.org/rule/show/NOW?lang=en-US"
            },
            "source": "LTeX",
            "message": "Did you mean 'now' (=at this moment) instead of 'no' (negation)?"
        },
        {
            "range": {
                "start": {
                    "line": 364,
                    "character": 35
                },
                "end": {
                    "line": 364,
                    "character": 49
                }
            },
            "severity": 3,
            "code": "PASSIVE_VOICE",
            "codeDescription": {
                "href": "https://community.languagetool.org/rule/show/PASSIVE_VOICE?lang=en-US"
            },
            "source": "LTeX",
            "message": "The text seems to be passive voice. To make the text clearer and easier to read, you can often use the active voice."
        },
        {
            "range": {
                "start": {
                    "line": 386,
                    "character": 24
                },
                "end": {
                    "line": 386,
                    "character": 34
                }
            },
            "severity": 3,
            "code": "ALL_OF_THE",
            "codeDescription": {
                "href": "https://community.languagetool.org/rule/show/ALL_OF_THE?lang=en-US"
            },
            "source": "LTeX",
            "message": "Consider using 'all the'."
        },
        {
            "range": {
                "start": {
                    "line": 386,
                    "character": 62
                },
                "end": {
                    "line": 386,
                    "character": 74
                }
            },
            "severity": 3,
            "code": "PASSIVE_VOICE",
            "codeDescription": {
                "href": "https://community.languagetool.org/rule/show/PASSIVE_VOICE?lang=en-US"
            },
            "source": "LTeX",
            "message": "The text seems to be passive voice. To make the text clearer and easier to read, you can often use the active voice."
        },
        {
            "range": {
                "start": {
                    "line": 387,
                    "character": 24
                },
                "end": {
                    "line": 387,
                    "character": 27
                }
            },
            "severity": 3,
            "code": "COMMA_COMPOUND_SENTENCE_2",
            "codeDescription": {
                "href": "https://community.languagetool.org/rule/show/COMMA_COMPOUND_SENTENCE_2?lang=en-US"
            },
            "source": "LTeX",
            "message": "Use a comma before 'so' if it connects two independent clauses (unless they are closely connected and short)."
        },
        {
            "range": {
                "start": {
                    "line": 469,
                    "character": 27
                },
                "end": {
                    "line": 469,
                    "character": 37
                }
            },
            "severity": 3,
            "code": "PASSIVE_VOICE",
            "codeDescription": {
                "href": "https://community.languagetool.org/rule/show/PASSIVE_VOICE?lang=en-US"
            },
            "source": "LTeX",
            "message": "The text seems to be passive voice. To make the text clearer and easier to read, you can often use the active voice."
        }
    ]
}


[Trace - 9:11:09 PM] Sending request 'textDocument/codeAction - (142)'.
Params: {
    "textDocument": {
        "uri": "file:///home/martinmr/workspace/trane/src/course_library.rs"
    },
    "range": {
        "start": {
            "line": 37,
            "character": 11
        },
        "end": {
            "line": 37,
            "character": 11
        }
    },
    "context": {
        "diagnostics": []
    }
}


[Trace - 9:11:09 PM] Received response 'textDocument/codeAction - (142)' in 0ms.
Result: []


[Trace - 9:11:10 PM] Sending notification 'textDocument/didSave'.
Params: {
    "textDocument": {
        "uri": "file:///home/martinmr/workspace/trane/src/course_library.rs"
    }
}


[Trace - 9:16:22 PM] Sending request 'textDocument/codeAction - (143)'.
Params: {
    "textDocument": {
        "uri": "file:///home/martinmr/workspace/trane/src/scheduler.rs"
    },
    "range": {
        "start": {
            "line": 0,
            "character": 0
        },
        "end": {
            "line": 0,
            "character": 0
        }
    },
    "context": {
        "diagnostics": []
    }
}


[Trace - 9:16:22 PM] Received response 'textDocument/codeAction - (143)' in 3ms.
Result: []


[Trace - 9:16:23 PM] Sending request 'textDocument/codeAction - (144)'.
Params: {
    "textDocument": {
        "uri": "file:///home/martinmr/workspace/trane/src/scheduler.rs"
    },
    "range": {
        "start": {
            "line": 0,
            "character": 3
        },
        "end": {
            "line": 0,
            "character": 3
        }
    },
    "context": {
        "diagnostics": []
    }
}


[Trace - 9:16:23 PM] Received response 'textDocument/codeAction - (144)' in 1ms.
Result: []


[Trace - 9:16:27 PM] Sending request 'textDocument/codeAction - (145)'.
Params: {
    "textDocument": {
        "uri": "file:///home/martinmr/workspace/trane/src/course_library.rs"
    },
    "range": {
        "start": {
            "line": 0,
            "character": 0
        },
        "end": {
            "line": 0,
            "character": 0
        }
    },
    "context": {
        "diagnostics": []
    }
}


[Trace - 9:16:27 PM] Received response 'textDocument/codeAction - (145)' in 3ms.
Result: []


[Trace - 9:16:27 PM] Sending request 'textDocument/codeAction - (146)'.
Params: {
    "textDocument": {
        "uri": "file:///home/martinmr/workspace/trane/src/course_library.rs"
    },
    "range": {
        "start": {
            "line": 37,
            "character": 11
        },
        "end": {
            "line": 37,
            "character": 11
        }
    },
    "context": {
        "diagnostics": []
    }
}


[Trace - 9:16:27 PM] Received response 'textDocument/codeAction - (146)' in 3ms.
Result: []


[Trace - 9:16:29 PM] Sending request 'textDocument/codeAction - (147)'.
Params: {
    "textDocument": {
        "uri": "file:///home/martinmr/workspace/trane/src/course_library.rs"
    },
    "range": {
        "start": {
            "line": 0,
            "character": 13
        },
        "end": {
            "line": 0,
            "character": 13
        }
    },
    "context": {
        "diagnostics": []
    }
}


[Trace - 9:16:29 PM] Received response 'textDocument/codeAction - (147)' in 0ms.
Result: []


[Trace - 9:16:30 PM] Sending request 'textDocument/codeAction - (148)'.
Params: {
    "textDocument": {
        "uri": "file:///home/martinmr/workspace/trane/src/course_library.rs"
    },
    "range": {
        "start": {
            "line": 0,
            "character": 13
        },
        "end": {
            "line": 0,
            "character": 13
        }
    },
    "context": {
        "diagnostics": []
    }
}


[Trace - 9:16:30 PM] Received response 'textDocument/codeAction - (148)' in 1ms.
Result: []


2022-08-26T04:16:34.866Z Info: Creating bug report...
[Trace - 9:16:34 PM] Sending request 'workspace/executeCommand - (149)'.
Params: {
    "command": "_ltex.getServerStatus",
    "arguments": []
}



Version information List here the version information of the relevant software.

  • Operating system: Linux (linux), x64, 5.10.102.1-microsoft-standard-WSL2
  • VS Code: 1.70.2
  • vscode-ltex: 13.1.0
  • ltex-ls: 15.2.0
  • Java: 11.0.12

Additional context/information You can add any other context or information about the problem here. e this sentence with the bug report from your clipboard.

martinmr avatar Aug 26 '22 04:08 martinmr