{"id":14966233,"url":"https://github.com/brucezoom/coqoutline","last_synced_at":"2025-08-12T18:42:17.331Z","repository":{"id":71881795,"uuid":"556286211","full_name":"BruceZoom/coqoutline","owner":"BruceZoom","description":"A VSCode extension that implements outline view and go to definition for Coq files.","archived":false,"fork":false,"pushed_at":"2022-10-24T07:49:22.000Z","size":47,"stargazers_count":10,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-31T07:51:29.026Z","etag":null,"topics":["coq","editor","vscode","vscode-extension"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BruceZoom.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"License","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-23T14:03:21.000Z","updated_at":"2024-09-13T02:52:30.000Z","dependencies_parsed_at":"2023-09-12T08:04:04.338Z","dependency_job_id":null,"html_url":"https://github.com/BruceZoom/coqoutline","commit_stats":{"total_commits":11,"total_committers":2,"mean_commits":5.5,"dds":0.09090909090909094,"last_synced_commit":"e933e886305942f73ab25d9112e336832e760afc"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BruceZoom%2Fcoqoutline","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BruceZoom%2Fcoqoutline/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BruceZoom%2Fcoqoutline/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BruceZoom%2Fcoqoutline/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BruceZoom","download_url":"https://codeload.github.com/BruceZoom/coqoutline/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238174116,"owners_count":19428629,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coq","editor","vscode","vscode-extension"],"created_at":"2024-09-24T13:36:03.228Z","updated_at":"2025-02-10T19:30:48.210Z","avatar_url":"https://github.com/BruceZoom.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Coq Outline \nA VSCode extension that provides outline view for Coq files.\n\n## Features\n- Provide outline views for Coq files.\n- Provide go to definition function to track Coq definitions.\n- It supports following types of symbols.\n  - Section/Module/Module Type as regions.\n  - Modules instances as definitions.\n  - (Program) Definition/Fixpoint/CoFixpoint/Function and so on.\n  - (Co)Inductive definitions and their constructors.\n  - Class/Record as aggregations of their fields.\n  - Class/Record fields.\n  - Ltac definitions.\n  - Parameter/Axiom/Conjecture/Variable/Hypothesis and their plural variants.\n  - Definitions by the `with` keyword.\n\n## Screenshots\n- Screenshot of the outline view.\n  ![outline-screenshot](https://user-images.githubusercontent.com/32293407/197471888-930fd668-c98a-403a-82ca-cc020b0f57dd.png)\n- Screenshots of the context menu and peek definition.\n  ![context-screenshot](https://user-images.githubusercontent.com/32293407/197471962-5a63c583-4365-4ec8-889d-a6888ea2b234.png)\n  ![peek-screenshot](https://user-images.githubusercontent.com/32293407/197472015-6bca6f00-e1b0-4a95-a0fa-3f1501a14e86.png)\n\n## Requirements\n* VS Code 1.72.0, or more recent\n* Coq 8.7.0, or more recent\n* VSCoq 0.3.6\n\n## Installation\nThe extension has not published yet.\nTo install a beta version, please go to [the Github Repo](https://github.com/BruceZoom/coqoutline) and download latest release.\nThen, either press \"Cmd-Shift-P\" and \"Extensions: Install from VSIX\", or run `code --install-extension coqoutline-0.2.2.vsix` (or whatever version number) from your terminal.\n\n## Instructions\n- To open the outline view in case you have turned it off, click `View \u003e Open View`, then search for and select `outline`.\n- To lookup the definition of a symbol, right click the symbol and select `Go to Definition` or `Peek \u003e Peek Definition` in the context menu.\n  - It searches definition by string matching. As a result, it retrieves all definitions with the same name regardless of the context.\n\n### Dos and Don'ts when writing Coq\nThe extension uses regular expressions to analyze Coq documents, thus not all Coq writing styles is accepted.\nThe followings are rules recommended when writing Coq with this extension.\nViolating them may cause the extension analyze your Coq files in wrong ways.\n\n- Comments should not be in the middle of a keyword and the symbol it defines.\n    ```coq\n    (* NOT OK *)\n    Definition (* comment *) name ...\n    ```\n- Any name should be in the same line as its key word. And any keyword must be the first word in a line. For example,\n    ```coq\n    (* OK *)\n    Definition name ...\n    (* NOT OK *)\n    Definition\n        name ...\n    (* NOT OK *)\n    (* anything *) Definition name ...\n    ```\n\u003c!-- - Nested definitions are not allowed. --\u003e\n- Keyword `with` should be treated the same as other key words and follows two rules above.\n    ```coq\n    (* OK *)\n    Inductive a ...\n        with b ...\n    (* NOT OK *)\n    Inductive a ... with b ...\n    ```\n- Allow multiple definitions of assumptions in the same line.\n    ```coq\n    (* OK *)\n    Parameters a b c : Type.\n    Parameters (a : Type) (b c: Type).\n    (* NOT OK, only a and b will be parsed *)\n    Parameters a b\n        c : Type.\n    ```\n- Fields in classes and records are supported. But field definitions should be in different lines of class names or record names, and each field definition should leads a new line.\n    ```coq\n    (* OK *)\n    Class A : Type := {\n        x : Type;\n        y: Type\n    }.\n    (* NOT OK *)\n    (* should be put in two lines *)\n    Class B : Type := { i : Type;\n        (* should be put in two lines *)\n        j: Type; k: Type\n    }.\n    ```\n- Inductive definition and its constructors should not be put in the same line, and remember to put at least a white space between items.\n  ```coq\n  (* OK *)\n  Inductive A: Type :=\n  | A | B\n  | C.\n  (* NOT OK *)\n  Inductive A: Type := | A\n  | B| C.\n  ```\n- When defining a module instance, the `:=` symbol should be put in the same line as the keyword.\n    ```coq\n    (* OK *)\n    Module A := B.\n    (* NOT OK *)\n    Module A\n        := B.\n    ```\n- `Defined` is treated the same as `Qed`, no succeeding ident is allowed.\n  \n## Known Issues \u0026 ToDos\n\n- [ ] does not support utf-8 characters\n- [x] multiple assumptions by one key word. (supported)\n- [x] the `with` keyword (supported)\n- [x] the range (end line) of program definitions may be wrong, no \"Defined\" token (supported)\n- [x] incorrectly includes code in comments (fixed)\n- [x] inductive constructors not handled (fixed)\n- [x] after renaming an open file, the outline view cannot display but definitions can already be located (fixed)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrucezoom%2Fcoqoutline","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrucezoom%2Fcoqoutline","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrucezoom%2Fcoqoutline/lists"}