diff --git a/internal/lsp/protocol/server.go b/internal/lsp/protocol/server.go
index 6eb7747..d2cbb66 100644
--- a/internal/lsp/protocol/server.go
+++ b/internal/lsp/protocol/server.go
@@ -49,7 +49,7 @@
 	RangeFormatting(context.Context, *DocumentRangeFormattingParams) ([]TextEdit, error)
 	OnTypeFormatting(context.Context, *DocumentOnTypeFormattingParams) ([]TextEdit, error)
 	Rename(context.Context, *RenameParams) ([]WorkspaceEdit, error)
-	FoldingRanges(context.Context, *FoldingRangeParams) ([]FoldingRange, error)
+	FoldingRange(context.Context, *FoldingRangeParams) ([]FoldingRange, error)
 }
 
 func serverHandler(log xlog.Logger, server Server) jsonrpc2.Handler {
@@ -454,7 +454,7 @@
 				sendParseError(ctx, log, conn, r, err)
 				return
 			}
-			resp, err := server.FoldingRanges(ctx, &params)
+			resp, err := server.FoldingRange(ctx, &params)
 			if err := conn.Reply(ctx, r, resp, err); err != nil {
 				log.Errorf(ctx, "%v", err)
 			}
@@ -714,9 +714,9 @@
 	return result, nil
 }
 
-func (s *serverDispatcher) FoldingRanges(ctx context.Context, params *FoldingRangeParams) ([]FoldingRange, error) {
+func (s *serverDispatcher) FoldingRange(ctx context.Context, params *FoldingRangeParams) ([]FoldingRange, error) {
 	var result []FoldingRange
-	if err := s.Conn.Call(ctx, "textDocument/foldingRanges", params, &result); err != nil {
+	if err := s.Conn.Call(ctx, "textDocument/foldingRange", params, &result); err != nil {
 		return nil, err
 	}
 	return result, nil
diff --git a/internal/lsp/server.go b/internal/lsp/server.go
index bd466e1..1f2d37b 100644
--- a/internal/lsp/server.go
+++ b/internal/lsp/server.go
@@ -242,8 +242,8 @@
 	return nil, notImplemented("Rename")
 }
 
-func (s *Server) FoldingRanges(context.Context, *protocol.FoldingRangeParams) ([]protocol.FoldingRange, error) {
-	return nil, notImplemented("FoldingRanges")
+func (s *Server) FoldingRange(context.Context, *protocol.FoldingRangeParams) ([]protocol.FoldingRange, error) {
+	return nil, notImplemented("FoldingRange")
 }
 
 func notImplemented(method string) *jsonrpc2.Error {
