{"id":17678538,"url":"https://github.com/antoinegagne/perfect-language-vim","last_synced_at":"2025-07-02T01:36:30.048Z","repository":{"id":98373137,"uuid":"127466251","full_name":"AntoineGagne/perfect-language-vim","owner":"AntoineGagne","description":"Filetype and syntax files for the Perfect language created by Escher Technologies","archived":false,"fork":false,"pushed_at":"2018-04-22T23:22:26.000Z","size":32,"stargazers_count":1,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-30T18:16:49.515Z","etag":null,"topics":["escher-technologies","perfect-language","syntax-highlighting","vim"],"latest_commit_sha":null,"homepage":null,"language":"Vim script","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AntoineGagne.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2018-03-30T19:38:39.000Z","updated_at":"2018-04-22T23:22:27.000Z","dependencies_parsed_at":null,"dependency_job_id":"eca4df60-8573-4a28-bf62-536c4bea1233","html_url":"https://github.com/AntoineGagne/perfect-language-vim","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/AntoineGagne/perfect-language-vim","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntoineGagne%2Fperfect-language-vim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntoineGagne%2Fperfect-language-vim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntoineGagne%2Fperfect-language-vim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntoineGagne%2Fperfect-language-vim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AntoineGagne","download_url":"https://codeload.github.com/AntoineGagne/perfect-language-vim/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntoineGagne%2Fperfect-language-vim/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263061025,"owners_count":23407597,"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":["escher-technologies","perfect-language","syntax-highlighting","vim"],"created_at":"2024-10-24T08:05:09.466Z","updated_at":"2025-07-02T01:36:30.004Z","avatar_url":"https://github.com/AntoineGagne.png","language":"Vim script","funding_links":[],"categories":[],"sub_categories":[],"readme":"====================\nperfect-language-vim\n====================\n\n:Author:\n    `Antoine Gagné \u003cantoine.gagne.2@ulaval.ca\u003e`_\n\n.. contents::\n    :backlinks: none\n\n.. sectnum::\n\nThis repository contains code that will make ``vim`` or ``neovim`` detect and\nhighlight the syntax of the `Perfect language\n\u003chttp://www.eschertech.com/product_documentation/Language%20Reference/LanguageReferenceManual.html\u003e`_.\n\nRequirements\n============\n\nThe following are required for all the features to work correctly:\n\n* A working Vim or Neovim installation compiled with the syntax highlighting\n  feature\n* The software to work with the Perfect language by Escher Technologies. This\n  should normally provide an ``eschertool`` program.\n\nAlthough the syntax highlighting will work on every platforms that\nhave Vim or Neovim compiled with the syntax highlighting feature, it is not\ntrue of the ``:make`` command which depends on the availability of the\n``eschertool`` command.\n\nEven though the ``eschertool`` command comes with the Linux version, as I have\nno machines with Windows, I can't tell whether this executable comes\nwith the installer on this OS.\nHowever, assuming that the command is available and in your ``PATH``, then it\nshould work correctly when invoking the command ``:make`` from Vim or Neovim.\n\nIf it doesn't, check where the ``builtin.pdc`` and ``rubric.pdc`` were placed\nby the installer and you can change the plugin variables\n``g:perfect_builtin_file_path`` and\n``g:perfect_prover_rule_declaration_file_path`` to their respective paths\naccording to the location of the previous files.\n\nYou can learn more about the ``eschertool`` command `here\n\u003chttps://www.eschertech.com/product_documentation/User%20Guide/UserGuide.html#6.Command_syntax\u003e`_.\n\nInstallation\n============\n\nThe installation will differ according to the plugin manager you use (or if you\ndon't use one).\nThis section contains the instructions for some of them.\n\n.. note:: This is only for some plugin managers but this plugin should work\n   with any plugin manager.\n   If you don't use any, it should work with Vim or Neovim built-in plugin\n   management system given that it is correctly installed.\n\nvim-plug\n--------\n\nIf you use `vim-plug \u003chttps://github.com/junegunn/vim-plug\u003e`_ (see this link\nfor how to install it), you can place this in your ``.vimrc``:\n\n.. code-block:: vim\n\n    Plug 'AntoineGagne/perfect-language-vim'\n\nAfter adding this line, you can launch ``vim`` and run ``:PlugInstall``.\nThe plugin will then be used when opening files with ``.pd`` extensions.\n\nVundle\n------\n\nIf you use `Vundle \u003chttps://github.com/VundleVim/Vundle.vim\u003e`_ (see this link\nfor how to install it), you can place this in your ``.vimrc``:\n\n.. code-block:: vim\n\n    Plugin 'AntoineGagne/perfect-language-vim'\n\nAfter adding this line, you can launch ``vim`` and run ``:PluginInstall``.\nThe plugin will then be used when opening files with ``.pd`` extensions.\n\nUsage\n=====\n\nCompiling, Verifying and Checking\n---------------------------------\n\nThis plugin sets the ``makeprg`` variable.\nThis means you can simply use ``:make`` when editing a Perfect file and it will\nautomatically build, verify and check the current file.\nThis also means that you can use the QuickFix list (see ``:help quickfix.txt``\nfor more information) to quickly jump to errors thrown at the compilation.\n\nBy default, the output of these checks will be in the ``build`` folder.\nYou can configure this by setting the value of the variable\n``g:perfect_build_output_directory``.\n\n:Example:\n\nHere is a recorded sample session of how to use this plugin:\n\n.. image:: https://asciinema.org/a/rGDZXEqoP89FKDpHffgt3PQzG.png\n   :target: https://asciinema.org/a/rGDZXEqoP89FKDpHffgt3PQzG\n\nIt illustrates the syntax highlighting offered by the plugin and how to use the\n``:make`` command along with the ``quickfix`` window.\n\nGlobal Options\n==============\n\n.. class:: globaloptions\n\n+-------------------------------------------------+-------------------------------------------------------+--------+-----------------------------------------------------------------------+\n| Flag                                            | Default                                               | Type   | Description                                                           |\n+=================================================+=======================================================+========+=======================================================================+\n| ``g:perfect_build_output_directory``            | \"build\"                                               | string | Path where the checks will be outputted to                            |\n+-------------------------------------------------+-------------------------------------------------------+--------+-----------------------------------------------------------------------+\n| ``g:perfect_builtin_file_path``                 | \"/opt/escher/verificationstudio6/builtin/builtin.pdc\" | string | Path to where the file that contains the *builtin* declarations is    |\n+-------------------------------------------------+-------------------------------------------------------+--------+-----------------------------------------------------------------------+\n| ``g:perfect_prover_rule_declaration_file_path`` | \"/opt/escher/verificationstudio6/builtin/rubric.pdc\"  | string | Path to where the file that contains the prover rules declarations is |\n+-------------------------------------------------+-------------------------------------------------------+--------+-----------------------------------------------------------------------+\n| ``g:perfect_template_author``                   | \"\u003cAuthor name here\u003e\"                                  | string | Name of the author used when creating a new file                      |\n+-------------------------------------------------+-------------------------------------------------------+--------+-----------------------------------------------------------------------+\n\nDocumentation\n=============\n\nThis plugin comes with vimdoc that you can access with the command ``:help\nperfect-language-vim.txt``.\n\nFAQ\n===\n\nWhich operating systems does this plugin support?\n-------------------------------------------------\n\nFor the basic syntax highlighting, any OS that can run Vim or Neovim will work.\n\nFor the compilation, verification and checks, you will need an OS on which\n``eschertool`` can be installed (the Linux version is supported but I haven't\ntested on Windows).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantoinegagne%2Fperfect-language-vim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fantoinegagne%2Fperfect-language-vim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantoinegagne%2Fperfect-language-vim/lists"}