{"id":13862245,"url":"https://github.com/gonewest818/elisp-lint","last_synced_at":"2026-03-04T03:31:16.689Z","repository":{"id":7750801,"uuid":"9118253","full_name":"gonewest818/elisp-lint","owner":"gonewest818","description":"Basic linting for Emacs Lisp","archived":false,"fork":false,"pushed_at":"2022-04-19T02:54:03.000Z","size":109,"stargazers_count":74,"open_issues_count":7,"forks_count":7,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-14T17:32:26.775Z","etag":null,"topics":["emacs","emacs-lisp","lint"],"latest_commit_sha":null,"homepage":"","language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gonewest818.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-03-30T16:05:12.000Z","updated_at":"2025-08-30T09:06:43.000Z","dependencies_parsed_at":"2022-09-13T07:52:19.066Z","dependency_job_id":null,"html_url":"https://github.com/gonewest818/elisp-lint","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/gonewest818/elisp-lint","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gonewest818%2Felisp-lint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gonewest818%2Felisp-lint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gonewest818%2Felisp-lint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gonewest818%2Felisp-lint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gonewest818","download_url":"https://codeload.github.com/gonewest818/elisp-lint/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gonewest818%2Felisp-lint/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30070744,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T03:25:38.285Z","status":"ssl_error","status_checked_at":"2026-03-04T03:25:05.086Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["emacs","emacs-lisp","lint"],"created_at":"2024-08-05T06:01:40.317Z","updated_at":"2026-03-04T03:31:16.668Z","avatar_url":"https://github.com/gonewest818.png","language":"Emacs Lisp","funding_links":[],"categories":["Emacs Lisp"],"sub_categories":[],"readme":"elisp-lint\n==========\n\nBasic linting for Emacs Lisp\n\n[![MELPA Stable](https://stable.melpa.org/packages/elisp-lint-badge.svg)](https://stable.melpa.org/#/elisp-lint)\n[![MELPA](https://melpa.org/packages/elisp-lint-badge.svg)](https://melpa.org/#/elisp-lint)\n[![CircleCI](https://img.shields.io/circleci/project/github/gonewest818/elisp-lint.svg)](https://circleci.com/gh/gonewest818/elisp-lint)\n[![codecov](https://codecov.io/gh/gonewest818/elisp-lint/branch/master/graph/badge.svg)](https://codecov.io/gh/gonewest818/elisp-lint)\n\nThis is a tool for finding certain problems in Emacs Lisp files. Use it on the command line like this:\n\n    emacs -Q --batch -l elisp-lint.el -f elisp-lint-files-batch *.el\n\nYou can disable individual checks by passing flags on the command line:\n\n    emacs -Q --batch -l elisp-lint.el -f elisp-lint-files-batch --no-indent *.el\n\nYou can use file variables or `.dir-locals.el` to disable checks completely, and\nalso to configure certain checks as described below.\n\n    ((emacs-lisp-mode . ((fill-column . 80)\n                         (indent-tabs-mode . nil)\n                         (elisp-lint-ignored-validators . (\"byte-compile\"))\n                         (elisp-lint-indent-specs . ((describe . 1)\n                                                     (it . 1))))))\n\nValidators\n----------\n\n### byte-compile ###\n\nByte-compiles the file with all warnings enabled.\n\n### check-declare ###\n\nVerifies all `declare-function` statements are legitimate.\n\n### checkdoc ###\n\nRuns checkdoc on the file to enforce standards in documentation.\n\n### fill-column ###\n\nVerifies that no line exceeds the number of columns in `fill-column`.\nCertain lines in the file are excluded from this check, and can\nhave unlimited length:\n\n* The package summary comment line, which by definition must\n  include the package name, a summary description (up to 60\n  characters), and an optional `-*- lexical-binding:t -*-`\n  declaration.\n\n* The \\\"Package-Requires\\\" header, whose length is determined by\n  the number of dependencies specified.\n \n### indent ###\n\nVerifies that each line is indented according to\n`emacs-lisp-mode`. Where macros are defined with special `indent`\nmetadata, use the `elisp-lint-indent-specs` alist to specify each\nsymbol's required indent.\n\n### indent-character ###\n\nVerifies the indentation is consistently tabs or spaces, according to\nthe value of `indent-tabs-mode`.\n\n### package-lint ###\n\nUse `package-lint` to perform checks on package metadata and elisp\nstyle.\n\nBecause this check uses the `package` library to validate when\ndependencies can be installed from an available package repository,\nthis check will suppress any \"package is not installable\" errors when\nrunning in a context where the `package` library is not initialized.\nThis can happen, e.g. when running Emacs on packages installed with\nCask.\n\n### trailing-whitespace ###\n\nVerifies the buffer has no lines with trailing whitespace.\n\nConfiguration\n-------------\n\nUse a file variable or `.dir-locals.el` to override the variables\nmentioned above.\n\nSample Report\n-------------\n\n``` text\ntest/data/example.el:0:0 (checkdoc) You should have a section marked \";;; Commentary:\"\ntest/data/example.el:0:0 (checkdoc) The first line should be of the form: \";;; package --- Summary\"\ntest/data/example.el:1:0 (error) Package should have a ;;; Commentary section.\ntest/data/example.el:1:0 (error) Package should have a Homepage or URL header.\ntest/data/example.el:1:0 (error) package.el cannot parse this buffer: Package lacks a file header\ntest/data/example.el:5:0 (checkdoc) You should have a section marked \";;; Code:\"\ntest/data/example.el:8:0 (checkdoc) White space found at end of line\ntest/data/example.el:8:0 (whitespace) trailing whitespace found\ntest/data/example.el:9:0 (indent) !      (b y))\ntest/data/example.el:10:0 (indent) ! \t  (message \"%s\" a))  \ntest/data/example.el:10:0 (indent-character) tabs instead of spaces\ntest/data/example.el:10:0 (whitespace) trailing whitespace found\ntest/data/example.el:11:0 (fill-column) line length 80 exceeded\ntest/data/example.el:12:0 (indent) !   (setq a 3)\ntest/data/example.el:16:0 (error) \"foo\" doesn't start with package's prefix \"difftest\".\ntest/data/example.el:17:0 (checkdoc) First line should be capitalized\ntest/data/example.el:17:0 (checkdoc) First sentence should end with punctuation\ntest/data/example.el:17:0 (indent) ! \"emacs is fun\"\ntest/data/example.el:18:0 (warning) Closing parens should not be wrapped onto new lines.\ntest/data/example.el:18:0 (indent) ! )\ntest/data/example.el:21:0 (checkdoc) The footer should be: (provide 'example)\\n;;; example.el ends here\ntest/data/example.el FAIL\n```\n\nChangelog\n---------\n\n* Version 0.5-SNAPSHOT (MELPA)\n   - suppress \"Package X is not installable\" errors when running in\n     a context where 'package-initialize' hasn't occurred\n* Version 0.4-SNAPSHOT (MELPA Stable, March 2020)\n   - Provide a summary report of all tests [#20]\n   - Integrate package-lint [#19]\n   - Remove package-format, as package-lint covers the same territory\n   - Make byte-compile errors and warnings more robust\n   - Make the fill-column checker ignore the package summary line [#25]\n   - Make 'fill-column' checker ignore the package requires header\n   - Add dependency on dash.el\n   - Colorized output\n* Version 0.3 (December 2019)\n   - Emacs 23 support is deprecated [#13]\n   - Adopt CircleCI and drop Travis CI [#9] [#14]\n   - Add check-declare validator [#16]\n   - Generate autoloads before bytecompile [#8]\n* Version 0.2.0 (Feb 2018)\n   - Project transferred to new maintainer\n   - Whitespace check permits page-delimiter (^L)\n   - Indentation check prints the diff to console\n   - User can specify indent specs to tell the checker about macros\n   - Added checkdoc (available only Emacs 25 and newer)\n   - Cleared up the console output for easier reading in CI\n   - Expand Travis CI test matrix to include Emacs 25 and 26\n* Version 0.1.0 (2015)\n   - Basic linting functionality implemented\n\nCredits\n-------\n\nThe initial development of `elisp-lint` is Copyright 2013-2015 Nikolaj\nSchumacher. This project was transferred to Neil Okamoto in 2018.\n\nUpdates and ongoing development are Copyright 2018-2020 Neil Okamoto and contributors.\n\nContributing\n------------\n\nPull requests are welcome!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgonewest818%2Felisp-lint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgonewest818%2Felisp-lint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgonewest818%2Felisp-lint/lists"}