{"id":20821895,"url":"https://github.com/flycheck/flycheck-mercury","last_synced_at":"2025-03-12T06:26:31.794Z","repository":{"id":13022300,"uuid":"15701836","full_name":"flycheck/flycheck-mercury","owner":"flycheck","description":"Mercury syntax checker for Flycheck","archived":false,"fork":false,"pushed_at":"2018-11-18T19:52:43.000Z","size":299,"stargazers_count":9,"open_issues_count":0,"forks_count":4,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-01-18T16:49:28.048Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flycheck.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-01-07T10:41:01.000Z","updated_at":"2023-08-22T10:56:25.000Z","dependencies_parsed_at":"2022-09-03T12:21:16.167Z","dependency_job_id":null,"html_url":"https://github.com/flycheck/flycheck-mercury","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flycheck%2Fflycheck-mercury","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flycheck%2Fflycheck-mercury/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flycheck%2Fflycheck-mercury/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flycheck%2Fflycheck-mercury/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flycheck","download_url":"https://codeload.github.com/flycheck/flycheck-mercury/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243168369,"owners_count":20247324,"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":[],"created_at":"2024-11-17T22:13:22.471Z","updated_at":"2025-03-12T06:26:31.773Z","avatar_url":"https://github.com/flycheck.png","language":"Emacs Lisp","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![MELPA](http://melpa.org/packages/flycheck-mercury-badge.svg)](http://melpa.org/#/flycheck-mercury)\n\nflycheck-mercury\n================\n\nThis library provides a [Flycheck](https://github.com/flycheck/flycheck) checker\nfor the logic / functional programming language Mercury using the [Melbourne\nMercury Compiler](http://mercurylang.org/). See\n[here](https://github.com/flycheck/flycheck/pull/295) for the reasons why it is\nnot directly part of the `flycheck` codebase.\n\n`mmc` provides an *errorcheck-only* mode where it only displays errors and\nwarning without doing any compilation.\n\n![Emacs Screenshot with flycheck-mercury](https://github.com/flycheck/flycheck-mercury/raw/master/flycheck-mercury-screenshot.png)\n\nInstallation\n------------\n\n`flycheck-mercury` is available as Emacs 24 package on\n[MELPA](http://melpa.org/).\n\nIf you want to install the version from github, first ensure that `flycheck` is\ninstalled, then download this code and add the directory to your Emacs\n`load-path`.\n\n```lisp\n(add-to-list 'load-path\n   \"path-to-flycheck-mercury\")\n```\n\nAdd to your `.emacs`:\n\n```lisp\n(eval-after-load 'flycheck\n  '(require 'flycheck-mercury))\n```\n\nMake sure that the `mmc` binary is present on Emacs' `exec-path` and can be\nexecuted.\n\nUsage\n-----\n\nWhen `flycheck` is enabled (e.g. with `global-flycheck-mode`), Mercury buffers\nwill be automatically checked using this checker if you have prolog-mode with\nsupport for Mercury installed.\n\n`mercury-mmc` does *not* create any files, this includes interface files\n(`*.int`, `*.int{0,2,3}`) which are required to correctly identify type\ninformation etc. However, it will supply the option `-I` to `mmc` in order to\nsearch for interface files in the directories contained in the list\n`flycheck-mmc-interface-dirs`. These directories are relative to the position of\nthe file to check. If interfaces are reported as missing that actually exist, it\nshould be sufficient to add their location relative to the checked file to the\nbuffer-local variable `flycheck-mmc-interface-dirs`,\n\n```lisp\n(setq-default 'flycheck-mmc-interface-dirs '(\"\u003cinterface-directories\u003e\"))\n```\n\nThis list defaults to `(\"Mercury/ints\" \"Mercury/int0s\" \"Mercury/int2s\"\nMercury/int3s\")`, i.e., the directory structure created by `mmc --make`.\n\nSo, in order to make `mercury-mmc` recognize any newly added predicate, you must\nfirst create its corresponding interface files, e.g., by launching a compilation\nof your program.\n\nOutput\n------\n\n`mercury-mmc` uses all three levels of error reporting: `error` for things which\nprevent correct compilation, `warning` for things like unused variables\netc. which does not prevent compilation and `info` for inferred type signatures.\n\nUser Options\n------------\n\nThe user options are defined via *buffer-local* variables. To change their\ndefault value for new buffers use:\n\n```lisp\n(setq-default \u003cvariable\u003e \u003cnew-value\u003e)\n```\n\n`flycheck-mmc-max-message-width` defines the maximal length of a message line.\nIf the specified value is strictly positive, the line is truncated to this\nlength and `...` is added at the end (using `s-truncate`). A value less than or\nequal to `0` has no effect. The default value is `0`.\n\n`flycheck-mmc-max-message-lines` defines the maximal number of message lines for\na single source line.  If the specified value is strictly positive, the messages\nare limited to this number of lines and `...` is added as final line. A value\nless than or equal to `0` has no effect. The default value is `0`.\n\n`flycheck-mmc-report-inferred` defines whether type/mode/determinism inference\n(via `--infer-all`) is reported on `info` level. The default value is `t`.\n\nLicense\n-------\n\nThis program is free software: you can redistribute it and/or modify it under\nthe terms of the GNU General Public License as published by the Free Software\nFoundation, either version 3 of the License, or (at your option) any later\nversion.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY\nWARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A\nPARTICULAR PURPOSE.  See the GNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License along with\nthis program.  If not, see http://www.gnu.org/licenses/.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflycheck%2Fflycheck-mercury","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflycheck%2Fflycheck-mercury","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflycheck%2Fflycheck-mercury/lists"}