提交 f6b6d4d6 编写于 作者: B Ben S

Merge the two source-file methods

上级 75e8d829
......@@ -78,12 +78,6 @@ impl<'a> File<'a> {
Some("hi") => vec![self.path.with_extension("hs")], // Haskell
Some("o") => vec![self.path.with_extension("c"), self.path.with_extension("cpp")], // C, C++
Some("pyc") => vec![self.path.with_extension("py")], // Python
_ => vec![],
}
}
pub fn get_source_files_usual(&self) -> Vec<Path> {
match self.ext {
Some("js") => vec![self.path.with_extension("coffee"), self.path.with_extension("ts")], // CoffeeScript, TypeScript
Some("css") => vec![self.path.with_extension("sass"), self.path.with_extension("less")], // SASS, Less
......
......@@ -37,6 +37,9 @@ static TEMP_TYPES: &'static [&'static str] = &[
static CRYPTO_TYPES: &'static [&'static str] = &[
"asc", "gpg", "sig", "signature", "pgp" ];
static COMPILED_TYPES: &'static [&'static str] = &[
"class", "elc", "hi", "o", "pyc" ];
impl FileType {
pub fn style(&self) -> Style {
match *self {
......@@ -69,6 +72,9 @@ impl<'a> HasType for File<'a> {
else if self.stat.perm.contains(io::UserExecute) {
return Executable;
}
else if self.name.starts_with("README") {
return Immediate;
}
else if self.ext.is_some() {
let ext = self.ext.unwrap();
if IMAGE_TYPES.iter().any(|&s| s == ext) {
......@@ -95,28 +101,24 @@ impl<'a> HasType for File<'a> {
else if self.is_tmpfile() || TEMP_TYPES.iter().any(|&s| s == ext) {
return Temp;
}
}
if self.name.starts_with("README") {
return Immediate;
}
let source_files = self.get_source_files();
if source_files.len() == 0 {
let source_files_usual = self.get_source_files_usual();
if source_files_usual.iter().any(|path| self.dir.contains(path)) {
Temp
return Normal;
}
else if source_files.iter().any(|path| self.dir.contains(path)) {
return Temp;
}
else {
Normal
if COMPILED_TYPES.iter().any(|&s| s == ext) {
return Compiled;
}
else {
return Normal;
}
else if source_files.iter().any(|path| self.dir.contains(path)) {
Temp
}
else {
Compiled
}
return Normal; // no filetype
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册