From 9ac46fb983f31cfece76e2181a9fe73b71f02e2e Mon Sep 17 00:00:00 2001
From: Andrey Nering <andrey.nering@gmail.com>
Date: Tue, 30 Aug 2016 20:18:40 -0300
Subject: Support Editorconfig on web editor

---
 routers/api/v1/api.go       |  1 +
 routers/api/v1/repo/file.go | 20 ++++++++++++++++++++
 2 files changed, 21 insertions(+)

(limited to 'routers/api/v1')

diff --git a/routers/api/v1/api.go b/routers/api/v1/api.go
index 16322fbffd..0591cddb86 100644
--- a/routers/api/v1/api.go
+++ b/routers/api/v1/api.go
@@ -290,6 +290,7 @@ func RegisterRoutes(m *macaron.Macaron) {
 						Patch(reqRepoWriter(), bind(api.EditMilestoneOption{}), repo.EditMilestone).
 						Delete(reqRepoWriter(), repo.DeleteMilestone)
 				})
+				m.Get("/editorconfig/:filename", context.RepoRef(), repo.GetEditorconfig)
 			}, repoAssignment())
 		}, reqToken())
 
diff --git a/routers/api/v1/repo/file.go b/routers/api/v1/repo/file.go
index 972dbefac0..ee9d15a322 100644
--- a/routers/api/v1/repo/file.go
+++ b/routers/api/v1/repo/file.go
@@ -45,3 +45,23 @@ func GetArchive(ctx *context.APIContext) {
 
 	repo.Download(ctx.Context)
 }
+
+func GetEditorconfig(ctx *context.APIContext) {
+	ec, err := ctx.Repo.GetEditorconfig()
+	if err != nil {
+		if git.IsErrNotExist(err) {
+			ctx.Error(404, "GetEditorconfig", err)
+		} else {
+			ctx.Error(500, "GetEditorconfig", err)
+		}
+		return
+	}
+
+	fileName := ctx.Params("filename")
+	def := ec.GetDefinitionForFilename(fileName)
+	if def == nil {
+		ctx.Error(404, "GetDefinitionForFilename", err)
+		return
+	}
+	ctx.JSON(200, def)
+}
-- 
cgit v1.2.3