diff --git a/data/stylish-haskell.yaml b/data/stylish-haskell.yaml
--- a/data/stylish-haskell.yaml
+++ b/data/stylish-haskell.yaml
@@ -41,6 +41,9 @@
       #
       # - compact: A more compact style.
       #
+      # - compact_line: Similar to compact, but wrap each line with
+      #   `{-#LANGUAGE #-}'.
+      #
       # Default: vertical.
       style: vertical
 
diff --git a/src/Language/Haskell/Stylish/Config.hs b/src/Language/Haskell/Stylish/Config.hs
--- a/src/Language/Haskell/Stylish/Config.hs
+++ b/src/Language/Haskell/Stylish/Config.hs
@@ -178,9 +178,9 @@
     <*> o A..:? "remove_redundant" A..!= True
   where
     styles =
-        [ ("vertical", LanguagePragmas.Vertical)
-        , ("compact",  LanguagePragmas.Compact)
-        ]
+        [ ("vertical",     LanguagePragmas.Vertical)
+        , ("compact",      LanguagePragmas.Compact)
+        , ("compact_line", LanguagePragmas.CompactLine)]
 
 
 --------------------------------------------------------------------------------
diff --git a/src/Language/Haskell/Stylish/Step/LanguagePragmas.hs b/src/Language/Haskell/Stylish/Step/LanguagePragmas.hs
--- a/src/Language/Haskell/Stylish/Step/LanguagePragmas.hs
+++ b/src/Language/Haskell/Stylish/Step/LanguagePragmas.hs
@@ -14,16 +14,17 @@
 
 
 --------------------------------------------------------------------------------
-import           Language.Haskell.Stylish.Block
-import           Language.Haskell.Stylish.Editor
-import           Language.Haskell.Stylish.Step
-import           Language.Haskell.Stylish.Util
+import Language.Haskell.Stylish.Block
+import Language.Haskell.Stylish.Editor
+import Language.Haskell.Stylish.Step
+import Language.Haskell.Stylish.Util
 
 
 --------------------------------------------------------------------------------
 data Style
     = Vertical
     | Compact
+    | CompactLine
     deriving (Eq, Show)
 
 
@@ -55,9 +56,31 @@
 
 
 --------------------------------------------------------------------------------
+compactLinePragmas :: Int -> [String] -> Lines
+compactLinePragmas _ [] = []
+compactLinePragmas columns pragmas' =
+  let maxWidth = columns - 16
+      longest  = maximum $ map length prags
+      prags    = map truncateComma $ wrap maxWidth "" 1 $
+                    map (++ ",") (init pragmas') ++ [last pragmas']
+  in map (wrapLanguage . padRight longest) prags
+  where
+    wrapLanguage ps = "{-# LANGUAGE" ++ ps ++  " #-}"
+
+
+--------------------------------------------------------------------------------
+truncateComma :: String -> String
+truncateComma ""     = ""
+truncateComma xs
+    | last xs == ',' = init xs
+    | otherwise      = xs
+
+
+--------------------------------------------------------------------------------
 prettyPragmas :: Int -> Int -> Style -> [String] -> Lines
-prettyPragmas _       longest Vertical = verticalPragmas longest
-prettyPragmas columns _       Compact  = compactPragmas columns
+prettyPragmas _       longest Vertical    = verticalPragmas longest
+prettyPragmas columns _       Compact     = compactPragmas columns
+prettyPragmas columns _       CompactLine = compactLinePragmas columns
 
 
 --------------------------------------------------------------------------------
@@ -75,7 +98,6 @@
         fxs    = filter (not . isRedundant') xs
         xs'    = S.fromList fxs `S.difference` known
         known' = xs' `S.union` known
-
 
 --------------------------------------------------------------------------------
 step :: Int -> Style -> Bool -> Step
diff --git a/stylish-haskell.cabal b/stylish-haskell.cabal
--- a/stylish-haskell.cabal
+++ b/stylish-haskell.cabal
@@ -1,5 +1,5 @@
 Name:          stylish-haskell
-Version:       0.5.8.0
+Version:       0.5.9.0
 Synopsis:      Haskell code prettifier
 Homepage:      https://github.com/jaspervdj/stylish-haskell
 License:       BSD3
diff --git a/tests/Language/Haskell/Stylish/Step/LanguagePragmas/Tests.hs b/tests/Language/Haskell/Stylish/Step/LanguagePragmas/Tests.hs
--- a/tests/Language/Haskell/Stylish/Step/LanguagePragmas/Tests.hs
+++ b/tests/Language/Haskell/Stylish/Step/LanguagePragmas/Tests.hs
@@ -5,14 +5,14 @@
 
 
 --------------------------------------------------------------------------------
-import           Test.Framework                      (Test, testGroup)
-import           Test.Framework.Providers.HUnit      (testCase)
-import           Test.HUnit                          (Assertion, (@=?))
+import Test.Framework                 (Test, testGroup)
+import Test.Framework.Providers.HUnit (testCase)
+import Test.HUnit                     (Assertion, (@=?))
 
 
 --------------------------------------------------------------------------------
-import           Language.Haskell.Stylish.Step.LanguagePragmas
-import           Language.Haskell.Stylish.Tests.Util
+import Language.Haskell.Stylish.Step.LanguagePragmas
+import Language.Haskell.Stylish.Tests.Util
 
 
 --------------------------------------------------------------------------------
@@ -112,4 +112,18 @@
         , "#if __GLASGOW_HASKELL__ >= 702"
         , "{-# LANGUAGE Trustworthy #-}"
         , "#endif"
+        ]
+
+case06 :: Assertion
+case06 = expected @=? testStep (step 80 CompactLine True) input
+  where
+    input = unlines
+        [ "{-# LANGUAGE TypeOperators, StandaloneDeriving, DeriveDataTypeable,"
+        , "    TemplateHaskell #-}"
+        , "{-# LANGUAGE TemplateHaskell, ViewPatterns #-}"
+        ]
+    expected = unlines
+        [ "{-# LANGUAGE DeriveDataTypeable, StandaloneDeriving, " ++
+          "TemplateHaskell #-}"
+        , "{-# LANGUAGE TypeOperators, ViewPatterns                             #-}"
         ]
