getFileInfo static method

String getFileInfo()

拿到当前文件名字 和 行号

Implementation

static String getFileInfo() {
  String fileStr = "";
  try {
    String traceString = StackTrace.current.toString().split("\n")[4];

    int indexOfFileName = traceString.indexOf(RegExp(r'[A-Za-z_1-9]+.dart'));

    String fileInfo = traceString.substring(indexOfFileName);
    String fileName = "";
    String lineNumber = "";
    // 先考虑 android ios 以及 web
    if (traceString.contains("#")) {
      // 代表 android 或者 ios
      List<String> listOfInfos = fileInfo.split(":");
      fileName = listOfInfos[0];
      lineNumber = listOfInfos[1];
    } else {
      // web
      traceString = StackTrace.current.toString().split("\n")[5];
      int indexOfFileName = traceString.indexOf(RegExp(r'[A-Za-z_1-9]+.dart'));
      String fileInfo = traceString.substring(indexOfFileName);
      fileName = fileInfo.split(" ")[0];
      lineNumber = fileInfo.split(" ")[1].split(":")[0];
    }

    fileStr = "[$fileName, $lineNumber]";
  } catch (e) {
    // NoThing
  }

  return fileStr;
}