.git/
# coupling: if you modify this file from the pro repo, you'll have
# to also update .dockerignore

# dune
**/_build/
# starting from dune 2.8.2, those are actually not generated anymore
**/.merlin

# opam files are now generated from dune-project when running 'dune build':
*.opam
# but we keep the one used for installing the project dependencies with
# 'opam install --deps-only .':
!semgrep.opam

# local opam switch
**/_opam/

# bisect_ppx
**/_coverage/
**/*.coverage

# pad's stuff (but better to put in ~pad/config/commons/gitignore)
top.ml
# codegraph serialized database
**/*.marshall

# Byte-compiled / optimized / DLL files
**/__pycache__/
**/*.py[cod]
**/*$py.class

# C extensions
**/*.so

# Distribution / packaging
**/.Python
**/build/
**/develop-eggs/
**/dist/
**/downloads/
**/eggs/
**/.eggs/
#lib/ No! pad: used for ocaml
**/lib64/
**/parts/
**/sdist/
**/var/
**/wheels/
**/pip-wheel-metadata/
**/share/python-wheels/
**/*.egg-info/
**/.installed.cfg
**/*.egg
**/MANIFEST

# PyInstaller
#  Usually these files are written by a python script from a template
#  before PyInstaller builds the exe, so as to inject date/other infos into it.
**/*.manifest
**/*.spec

# Installer logs
**/pip-log.txt
**/pip-delete-this-directory.txt

# Unit test / coverage reports
**/htmlcov/
**/.tox/
**/.nox/
**/.coverage
**/.coverage.*
**/.cache
**/nosetests.xml
**/coverage.xml
**/*.cover
**/*.py,cover
**/.hypothesis/
**/.pytest_cache/

# src/targeting/Unit_guess_lang.ml creates a top-level tmp folder
# "We don't delete the files when we're done because it's easier when troubleshooting tests."
tmp/

# Translations
**/*.mo
**/*.pot

# Django stuff:
**/*.log
!**/cli/tests/**/*.log
**/local_settings.py
**/db.sqlite3
**/db.sqlite3-journal

# Flask stuff:
**/instance/
**/.webassets-cache

# Scrapy stuff:
**/.scrapy

# Sphinx documentation
**/docs/_build/

# PyBuilder
#target/
#pad: commented because we now have also src/target/ which is valid code

# Jupyter Notebook
**/.ipynb_checkpoints

# IPython
**/profile_default/
**/ipython_config.py

# pyenv
**/.python-version

# pipenv
#   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
#   However, in case of collaboration, if having platform-specific dependencies or dependencies
#   having no cross-platform support, pipenv may install dependencies that don't work, or not
#   install all needed dependencies.
#Pipfile.lock

# PEP 582; used by e.g. github.com/David-OConnor/pyflow
**/__pypackages__/

# Celery stuff
**/celerybeat-schedule
**/celerybeat.pid

# SageMath parsed files
**/*.sage.py

# Environments
**/.env
**/.venv
**/env/
**/venv/
**/ENV/
**/env.bak/
**/venv.bak/

# Spyder project settings
**/.spyderproject
**/.spyproject

# Rope project settings
**/.ropeproject

# mkdocs documentation
site

# mypy
**/.mypy_cache/
**/.dmypy.json
**/dmypy.json

# Pyre type checker
**/.pyre/

# Vim
**/.*.sw*

# Pycharm
**/.idea/

# OSX
**/*.DS_Store

### custom stuff

# JS stuff
**/*.vscode-test
**/out

# semgrep-core build artifacts
**/TAGS
**/log_config.json
**/.vscode/settings.json
scripts/oncall-email/today.json
scripts/oncall-email/yesterday.json

# Do not check in compiled binaries
cli/src/semgrep/bin/*
!cli/src/semgrep/bin/__init__.py

# Ignore bench files
**/perf/bench

# The following instructions have no effect because 'perf/bench' is a parent
# directory that is gitignored by the pattern above, causing git's scanner
# to stop without inspecting the children paths.
#
# TODO: If we want to not gitignore these paths, they should
# go in a separate folder i.e. not side-by-side with temporary folders.
#
# !perf/bench/dogfood
# !perf/bench/gitlab
# !perf/bench/dummy

# Local actions testing
**/act/

# editor
**/*.code-workspace
**/.vscode

# .history is here twice because if you ignore history you are doomed to repeat it
.history/
.history/

# Artifacts from CI
**/scripts/release/release_body.txt

# nix
**/result
# direnv
**/.direnv
# Personal symlink to semgrep-proprietary used by 'make pro'
semgrep-proprietary

# From cli/src/semgrep/semgrep_interfaces/.gitignore
cli/src/semgrep/semgrep_interfaces/__pycache__/

cli/src/semgrep/semgrep_interfaces/**/*.swp

# OCaml compilation products
cli/src/semgrep/semgrep_interfaces/**/*.cmi
cli/src/semgrep/semgrep_interfaces/**/*.cmo
cli/src/semgrep/semgrep_interfaces/**/Language

# From cli/src/semgrep/semgrep_interfaces/tests/.gitignore
cli/src/semgrep/semgrep_interfaces/tests/**/__pycache__
cli/src/semgrep/semgrep_interfaces/tests/**/*.ast.json

# From cli/tests/default/e2e/targets/dependency_aware/gradle-no-lockfile/.gitignore
cli/tests/default/e2e/targets/dependency_aware/gradle-no-lockfile/**/.gradle
# From cli/tests/default/e2e/targets/ignores_default/.gitignore
cli/tests/default/e2e/targets/ignores_default/**/ignore.js
# From cli/tests/default/e2e/targets/ignores/.gitignore
cli/tests/default/e2e/targets/ignores/**/bad/
# From languages/bash/tree-sitter/semgrep-bash/.gitignore
# Dune build data
languages/bash/tree-sitter/semgrep-bash/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/bash/tree-sitter/semgrep-bash/**/.merlin

# Dune-generated files
languages/bash/tree-sitter/semgrep-bash/**/*.install

# From languages/cairo/tree-sitter/semgrep-cairo/.gitignore
# Dune build data
languages/cairo/tree-sitter/semgrep-cairo/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/cairo/tree-sitter/semgrep-cairo/**/.merlin

# Dune-generated files
languages/cairo/tree-sitter/semgrep-cairo/**/*.install

# From languages/circom/tree-sitter/semgrep-circom/.gitignore
# Dune build data
languages/circom/tree-sitter/semgrep-circom/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/circom/tree-sitter/semgrep-circom/**/.merlin

# Dune-generated files
languages/circom/tree-sitter/semgrep-circom/**/*.install

# From languages/cpp/tree-sitter/semgrep-cpp/.gitignore
# Dune build data
languages/cpp/tree-sitter/semgrep-cpp/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/cpp/tree-sitter/semgrep-cpp/**/.merlin

# Dune-generated files
languages/cpp/tree-sitter/semgrep-cpp/**/*.install

# From languages/csharp/tree-sitter/semgrep-c-sharp/.gitignore
# Dune build data
languages/csharp/tree-sitter/semgrep-c-sharp/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/csharp/tree-sitter/semgrep-c-sharp/**/.merlin

# Dune-generated files
languages/csharp/tree-sitter/semgrep-c-sharp/**/*.install

# From languages/dart/tree-sitter/semgrep-dart/.gitignore
# Dune build data
languages/dart/tree-sitter/semgrep-dart/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/dart/tree-sitter/semgrep-dart/**/.merlin

# Dune-generated files
languages/dart/tree-sitter/semgrep-dart/**/*.install

# From languages/dockerfile/tree-sitter/semgrep-dockerfile/.gitignore
# Dune build data
languages/dockerfile/tree-sitter/semgrep-dockerfile/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/dockerfile/tree-sitter/semgrep-dockerfile/**/.merlin

# Dune-generated files
languages/dockerfile/tree-sitter/semgrep-dockerfile/**/*.install

# From languages/go/tree-sitter/semgrep-go/.gitignore
# Dune build data
languages/go/tree-sitter/semgrep-go/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/go/tree-sitter/semgrep-go/**/.merlin

# Dune-generated files
languages/go/tree-sitter/semgrep-go/**/*.install

# From languages/hack/tree-sitter/semgrep-hack/.gitignore
# Dune build data
languages/hack/tree-sitter/semgrep-hack/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/hack/tree-sitter/semgrep-hack/**/.merlin

# Dune-generated files
languages/hack/tree-sitter/semgrep-hack/**/*.install

# From languages/html/tree-sitter/semgrep-html/.gitignore
# Dune build data
languages/html/tree-sitter/semgrep-html/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/html/tree-sitter/semgrep-html/**/.merlin

# Dune-generated files
languages/html/tree-sitter/semgrep-html/**/*.install

# From languages/java/tree-sitter/semgrep-java/.gitignore
# Dune build data
languages/java/tree-sitter/semgrep-java/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/java/tree-sitter/semgrep-java/**/.merlin

# Dune-generated files
languages/java/tree-sitter/semgrep-java/**/*.install

# From languages/jsonnet/tree-sitter/semgrep-jsonnet/.gitignore
# Dune build data
languages/jsonnet/tree-sitter/semgrep-jsonnet/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/jsonnet/tree-sitter/semgrep-jsonnet/**/.merlin

# Dune-generated files
languages/jsonnet/tree-sitter/semgrep-jsonnet/**/*.install

# From languages/julia/tree-sitter/semgrep-julia/.gitignore
# Dune build data
languages/julia/tree-sitter/semgrep-julia/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/julia/tree-sitter/semgrep-julia/**/.merlin

# Dune-generated files
languages/julia/tree-sitter/semgrep-julia/**/*.install

# From languages/kotlin/tree-sitter/semgrep-kotlin/.gitignore
# Dune build data
languages/kotlin/tree-sitter/semgrep-kotlin/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/kotlin/tree-sitter/semgrep-kotlin/**/.merlin

# Dune-generated files
languages/kotlin/tree-sitter/semgrep-kotlin/**/*.install

# From languages/lisp/tree-sitter/semgrep-clojure/.gitignore
# Dune build data
languages/lisp/tree-sitter/semgrep-clojure/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/lisp/tree-sitter/semgrep-clojure/**/.merlin

# Dune-generated files
languages/lisp/tree-sitter/semgrep-clojure/**/*.install

# From languages/lua/tree-sitter/semgrep-lua/.gitignore
# Dune build data
languages/lua/tree-sitter/semgrep-lua/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/lua/tree-sitter/semgrep-lua/**/.merlin

# Dune-generated files
languages/lua/tree-sitter/semgrep-lua/**/*.install

# From languages/move_on_aptos/tree-sitter/semgrep-move-on-aptos/.gitignore
# Dune build data
languages/move_on_aptos/tree-sitter/semgrep-move-on-aptos/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/move_on_aptos/tree-sitter/semgrep-move-on-aptos/**/.merlin

# Dune-generated files
languages/move_on_aptos/tree-sitter/semgrep-move-on-aptos/**/*.install

# From languages/move_on_sui/tree-sitter/semgrep-move-on-sui/.gitignore
# Dune build data
languages/move_on_sui/tree-sitter/semgrep-move-on-sui/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/move_on_sui/tree-sitter/semgrep-move-on-sui/**/.merlin

# Dune-generated files
languages/move_on_sui/tree-sitter/semgrep-move-on-sui/**/*.install

# From languages/ocaml/tree-sitter/semgrep-ocaml/.gitignore
# Dune build data
languages/ocaml/tree-sitter/semgrep-ocaml/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/ocaml/tree-sitter/semgrep-ocaml/**/.merlin

# Dune-generated files
languages/ocaml/tree-sitter/semgrep-ocaml/**/*.install

# From languages/php/tree-sitter/semgrep-php/.gitignore
# Dune build data
languages/php/tree-sitter/semgrep-php/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/php/tree-sitter/semgrep-php/**/.merlin

# Dune-generated files
languages/php/tree-sitter/semgrep-php/**/*.install

# From languages/promql/tree-sitter/semgrep-promql/.gitignore
# Dune build data
languages/promql/tree-sitter/semgrep-promql/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/promql/tree-sitter/semgrep-promql/**/.merlin

# Dune-generated files
languages/promql/tree-sitter/semgrep-promql/**/*.install

# From languages/protobuf/tree-sitter/semgrep-proto/.gitignore
# Dune build data
languages/protobuf/tree-sitter/semgrep-proto/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/protobuf/tree-sitter/semgrep-proto/**/.merlin

# Dune-generated files
languages/protobuf/tree-sitter/semgrep-proto/**/*.install

# From languages/python/tree-sitter/semgrep-python/.gitignore
# Dune build data
languages/python/tree-sitter/semgrep-python/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/python/tree-sitter/semgrep-python/**/.merlin

# Dune-generated files
languages/python/tree-sitter/semgrep-python/**/*.install

# From languages/ql/tree-sitter/semgrep-ql/.gitignore
# Dune build data
languages/ql/tree-sitter/semgrep-ql/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/ql/tree-sitter/semgrep-ql/**/.merlin

# Dune-generated files
languages/ql/tree-sitter/semgrep-ql/**/*.install

# From languages/r/tree-sitter/semgrep-r/.gitignore
# Dune build data
languages/r/tree-sitter/semgrep-r/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/r/tree-sitter/semgrep-r/**/.merlin

# Dune-generated files
languages/r/tree-sitter/semgrep-r/**/*.install

# From languages/regexp/.gitignore
languages/regexp/Parser.ml
languages/regexp/Parser.mli

# From languages/ruby/tree-sitter/semgrep-ruby/.gitignore
# Dune build data
languages/ruby/tree-sitter/semgrep-ruby/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/ruby/tree-sitter/semgrep-ruby/**/.merlin

# Dune-generated files
languages/ruby/tree-sitter/semgrep-ruby/**/*.install

# From languages/rust/tree-sitter/semgrep-rust/.gitignore
# Dune build data
languages/rust/tree-sitter/semgrep-rust/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/rust/tree-sitter/semgrep-rust/**/.merlin

# Dune-generated files
languages/rust/tree-sitter/semgrep-rust/**/*.install

# From languages/solidity/tree-sitter/semgrep-solidity/.gitignore
# Dune build data
languages/solidity/tree-sitter/semgrep-solidity/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/solidity/tree-sitter/semgrep-solidity/**/.merlin

# Dune-generated files
languages/solidity/tree-sitter/semgrep-solidity/**/*.install

# From languages/swift/tree-sitter/semgrep-swift/.gitignore
# Dune build data
languages/swift/tree-sitter/semgrep-swift/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/swift/tree-sitter/semgrep-swift/**/.merlin

# Dune-generated files
languages/swift/tree-sitter/semgrep-swift/**/*.install

# From languages/terraform/tree-sitter/semgrep-hcl/.gitignore
# Dune build data
languages/terraform/tree-sitter/semgrep-hcl/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/terraform/tree-sitter/semgrep-hcl/**/.merlin

# Dune-generated files
languages/terraform/tree-sitter/semgrep-hcl/**/*.install

# From languages/typescript/tree-sitter/semgrep-tsx/.gitignore
# Dune build data
languages/typescript/tree-sitter/semgrep-tsx/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/typescript/tree-sitter/semgrep-tsx/**/.merlin

# Dune-generated files
languages/typescript/tree-sitter/semgrep-tsx/**/*.install

# From languages/typescript/tree-sitter/semgrep-typescript/.gitignore
# Dune build data
languages/typescript/tree-sitter/semgrep-typescript/**/_build

# Merlin files for Vim and Emacs generated by dune < 2.8
languages/typescript/tree-sitter/semgrep-typescript/**/.merlin

# Dune-generated files
languages/typescript/tree-sitter/semgrep-typescript/**/*.install

# From libs/ocaml-tree-sitter-core/.gitignore
libs/ocaml-tree-sitter-core/bin
libs/ocaml-tree-sitter-core/**/tmp
libs/ocaml-tree-sitter-core/downloads

# Dune build data
libs/ocaml-tree-sitter-core/**/_build

# Merlin configuring file for Vim and Emacs
libs/ocaml-tree-sitter-core/**/.merlin

# Dune generated files
libs/ocaml-tree-sitter-core/**/*.install

# Local OPAM switch
libs/ocaml-tree-sitter-core/_opam/

# for codemap stuff of pad
libs/ocaml-tree-sitter-core/skip_list.txt

# Generated by ./configure
libs/ocaml-tree-sitter-core/tree-sitter-config.mk
libs/ocaml-tree-sitter-core/tree-sitter-config.sh

# The default installation root of tree-sitter
libs/ocaml-tree-sitter-core/tree-sitter
libs/ocaml-tree-sitter-core/tree-sitter-*.*.*

# The file containing the tree-sitter version being used
libs/ocaml-tree-sitter-core/tree-sitter-version

# From libs/ocaml-tree-sitter-core/test/.gitignore
# Files generated by ocaml-tree-sitter
libs/ocaml-tree-sitter-core/test/**/CST.ml
libs/ocaml-tree-sitter-core/test/**/Parse.ml
libs/ocaml-tree-sitter-core/test/**/CST_*.ml
libs/ocaml-tree-sitter-core/test/**/Parse_*.ml

# Various output files
libs/ocaml-tree-sitter-core/test/*/test.out
libs/ocaml-tree-sitter-core/test/*/stat.txt

libs/ocaml-tree-sitter-core/test/**/node_modules
libs/ocaml-tree-sitter-core/test/**/package.json
libs/ocaml-tree-sitter-core/test/**/package-lock.json
libs/ocaml-tree-sitter-core/test/**/tree-sitter-parser.js

# Files generated by tree-sitter
libs/ocaml-tree-sitter-core/test/*/src
libs/ocaml-tree-sitter-core/test/*/src.orig
libs/ocaml-tree-sitter-core/test/*/build
libs/ocaml-tree-sitter-core/test/*/binding.gyp
libs/ocaml-tree-sitter-core/test/*/index.js
libs/ocaml-tree-sitter-core/test/*/tree-sitter-parser.js
libs/ocaml-tree-sitter-core/test/*/package.json
libs/ocaml-tree-sitter-core/test/*/Cargo.toml
libs/ocaml-tree-sitter-core/test/*/bindings

# Files generated by ocaml-tree-sitter
libs/ocaml-tree-sitter-core/test/*/ocaml-src
libs/ocaml-tree-sitter-core/test/*/parse-*
libs/ocaml-tree-sitter-core/test/*/parse
libs/ocaml-tree-sitter-core/test/*/grammar-rev.js.orig
libs/ocaml-tree-sitter-core/test/*/grammar-rev.js

# From libs/pcre2/.gitignore
libs/pcre2/**/.*.swp
libs/pcre2/**/.merlin
libs/pcre2/**/*.install
libs/pcre2/**/_build

# From libs/testo/.gitignore
libs/testo/_build
libs/testo/_opam

# Symbolic links created dynamically
libs/testo/failing-test
libs/testo/meta-test
libs/testo/parallel-test
libs/testo/test
libs/testo/test-alcotest

# From libs/testo/docsrc/tutorial/.gitignore
libs/testo/docsrc/tutorial/my_project

# From libs/testo/tests/.gitignore
# These files are created by the meta-test
libs/testo/tests/custom-snapshots

# From src/spacegrep/.gitignore
src/spacegrep/**/_build
src/spacegrep/**/.merlin
src/spacegrep/tmp

# From stats/autofix-printing-stats/.gitignore
stats/autofix-printing-stats/**/tmp

# From stats/parsing-stats/.gitignore
stats/parsing-stats/**/tmp
stats/parsing-stats/**/lang/**/stats.json
stats/parsing-stats/**/test-parsing/**/stats.json

# From stats/parsing-stats/test-parsing/.gitignore
stats/parsing-stats/test-parsing/run-all
stats/parsing-stats/test-parsing/run-lang

# From tests/semgrep-rules/.gitignore
tests/semgrep-rules/**/__pycache__/
tests/semgrep-rules/**/.benchmarks/
tests/semgrep-rules/**/.pytest_cache/
tests/semgrep-rules/**/.DS_Store
tests/semgrep-rules/**/.vscode/
tests/semgrep-rules/**/.venv

