Обзор
Я бы хотел рекурсивно искать строку в выбранном исходном файле. Таким образом, выбранный файл будет найден, и все файлы будут импортированы в выбранные файлы, а файлы импортированы в эти файлы и так далее.
Я использую Sublime Text 3 , поэтому ответы, ориентированные на это, будут идеальными, но любые ответы о том, как добиться этого в других редакторах, также будут высоко оценены.
Цель / Что я хочу сделать
В приведенном ниже коде из файла Footer.jsx
. Я хотел бы найти любые вхождения строки "container"
в Footer.jsx, а также в файлах, импортированных в Footer.jsx
, и файлах, импортированных в эти импортированные файлы и т. Д.
В идеале, если можно указать рекурсивный поиск файлов в определенной папке (т. Е. Исходной папки, а не библиотек React), это было бы идеально. Таким образом, в приведенном ниже примере из импортированных файлов только footerStyle.jsx
&
GridContainer.jsx
будет найден в файле Footer.jsx
. Оба файла относятся к каталогу "src"
, который определен в файле .env
с использованием NODE_PATH=./src
Что можно сделать в настоящее время и почему этого недостаточно
В настоящее время я могу искать один файл (Ctrl + F), несколько файлов или все файлы (Ctrl + Shift + F), но не один файл и все файлы, импортированные / включенные в этот файл рекурсивно.
Я мог бы вручную добавить импортированные файлы в Footer.jsx
в список файлов для поиска , но для этого потребовалось бы вручную рекурсивно просматривать импортированные файлы и файлы, импортированные в эти файлы, и т. Д. на достаточную глубину и добавьте все эти файлы в список поиска. Это, конечно, может стать очень трудоемким. Я просто хотел бы знать, существуют ли какие-либо инструменты для этого.
/* eslint-disable */
import React from "react";
// nodejs library to set properties for components
import PropTypes from "prop-types";
// nodejs library that concatenates classes
import classNames from "classnames";
// @material-ui/core components
import withStyles from "@material-ui/core/styles/withStyles";
import List from "@material-ui/core/List";
import ListItem from "@material-ui/core/ListItem";
// @material-ui/icons
import Favorite from "@material-ui/icons/Favorite";
import footerStyle from "assets/jss/material-kit-pro-react/components/footerStyle.jsx";
import GridContainer from "components/Grid/GridContainer.jsx";
function Footer(props) {
const { children, content, classes, theme, big, className } = props;
const themeType =
theme === "transparent" || theme == undefined ? false : true;
const footerClasses = classNames({
[classes.footer]: true,
[classes[theme]]: themeType,
[classes.big]: big || children !== undefined,
[className]: className !== undefined
});
const aClasses = classNames({
[classes.a]: true
});
return (
<footer className={footerClasses}>
<div className={classes.container}>
{children !== undefined ? (
<div>
<div className={classes.content}>{children}</div>
<hr />
</div>
) : (
" "
)}
{content}
<div className={classes.clearFix} />
</div>
</footer>
);
}
Footer.propTypes = {
classes: PropTypes.object.isRequired,
theme: PropTypes.oneOf(["dark", "white", "transparent"]),
big: PropTypes.bool,
content: PropTypes.node.isRequired
};
export default withStyles(footerStyle)(Footer);